Компонент Delphi StringGrid









                                           ГЛАВНАЯ           СВОЙСТВА           СОБЫТИЯ           ПРИЁМЫ  ПРОГРАММИРОВАНИЯ




Свойства StringGrid
11. Align
12. Anchors
13. BiDiMode
15. ColCount
16. RowCount
17. Color
19. Ctl3D
10. Cursor
15. DragKind
16. DragMode
17. Enabled
19. FixedCols
20. FixedRows
21. Font
23. Height
26. HelpType
27. Hint
28. Left
29. Name
30. Options
31. PopupMenu
33. ShowHint
34. TabOrder
35. TabStop
36. Tag
37. Top
38. Visible
39. Width




StringGrid Delphi

Свойство Width




   Свойство Width компонента StringGrid содержит и задаёт ширину компонента в пикселах.

   На значение свойства Width не влияет количество столбцов, содержащихся в таблице. Это просто размеры окна, в котором компонент будет отрисовываться.

   Если всё количество столбцов не помещается по высоте в размеры окна компонента, то автоматически появляется горизонтальная полоса прокрутки. Появление гоизонтальной полосы прокрутки можно запретить, придав свойству ScrollBars значение ssVertical или ssNone.

   Иногда программисту может потребоваться уже в ходе работы программы установить такое значение свойства Width, чтобы в окне компонента были видны все его столбцы, и тем самым горизонтальная полоса прокрутки не появлялась бы.

   В таком случае значение свойства Width складывается из суммы ширин каждого столбца, плюс толщина линий между столбцами, плюс 2 пиксела на толщину внешней границы (см. свойство BorderStyle) компонента StringGrid. Также на значение свойства Width влияет свойство Ctl3D компонента. При значении Ctl3D = True к результирующему значению свойства Width нужно прибавить ещё один пиксел.

   Также нужно учесть влияние на результирующую ширину ширины вертикальной полосы прокрутки, и при её наличии прибавить к ширине компонента ещё 21, а лучше 22 пиксела.

   Таким образом, следующая процедурка придаст свойству Width компонента StringGrid значение, при котором в появлении горизонтальной полосы прокрутки не будет необходимости:

var i, W: Integer;
begin
W:=25;
with StringGrid1 do
for i:=0 to ColCount-1 do
  W:=W+ColWidths[i]+1;
StringGrid1.Width:=W;
end;

   Есть ещё один метод нахождения такого значения свойства Width, при котором все столбцы находятся в зоне видимости в окне компонента. Этот метод использует доступное программно свойство VisibleColCount (количество полностью видимых столбцов) компонента StringGrid. Этот метод более прост, так как не требует учёта никаких дополнительных слагаемых. К текущей ширине компонента нужно прибавлять по 2 пиксела, пока значение VisibleColCount меньше чем ColCount-1:

begin
with StringGrid1 do
while VisibleColCount < ColCount-1 do
  Width:=Width+2;
end;


Читайте также:
  • Свойство DefaultColWidth StringGrid Delphi

  • Сайт MrSpec - http://mrspec.ru. Мастер на час в Москве.

    Сайт из коллекции Компоненты Delphi    

    Карта сайта