Компонент 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

Свойство Height




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

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

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

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

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

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

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

var i, H: Integer;
begin
H:=25;
with StringGrid1 do
for i:=0 to RowCount-1 do
  H:=H+RowHeights[i]+1;
StringGrid1.Height:=H;
end;

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

begin
with StringGrid1 do
while VisibleRowCount < RowCount-1 do
  Height:=Height+2;
end;


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

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

    Карта сайта