Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Снежинкам / Лекция 10 TStringGrid - таблица строк.doc
Скачиваний:
27
Добавлен:
02.02.2015
Размер:
311.3 Кб
Скачать

16

18.2.4. TStringGrid - таблица строк

Компонент TStringGrid предназначен для создания таблиц, в ячейках которых располагаются произвольные текстовые строки. Он является прямым потомком TDrawGrid (см. ниже п. 18.2.5), от которого им унаследовано большинство свойств и методов.

Таблица делится на две части - фиксированную и рабочую. Фиксированная служит для показа заголовков столбцов/рядов и для ручного управления их размерами. Обычно фиксированная часть занимает крайний левый столбец и самый верхний ряд таблицы, однако с помощью свойств FixedCols и FixedRows можно задать другое количество фиксированных столбцов и рядов (если эти свойства имеют 0, таблица не содержит фиксированной зоны). Рабочая часть - это остальная часть таблицы. Она может содержать произвольное количество столбцов и рядов, более того, эти величины могут изменяться программно. Рабочая часть может не умещаться целиком в пределах окна компонента, в этом случае в него автоматически помещаются нужные полосы прокрутки. При прокрутке рабочей области фиксированная область не исчезает, но меняется ее содержимое - заголовки строк и рядов.

Центральным свойством компонента является Cells - двухмерный массив ячеек, каждая из которых может содержать произвольный текст. Конкретная ячейка определяется парой чисел - номером столбца и номером ряда, на пересечении которых она находится (нумерация начинается с нуля). Свойство cells имеет тип String, поэтому программа может легко прочитать или записать содержимое нужной ячейки. Например:

Cells [1,1] := 'Левая верхняя ячейка рабочей зоны';

Количество ячеек по каждому измерению хранит пара свойств Colcount (количество столбцов) и RowCount (количество рядов). Значения-этих свойств и, следовательно, размеры таблицы могут меняться как на этапе разработки программы, так и в ходе ее работы, однако их значения должны быть как минимум на единицу больше соответственно значений в свойства FixedCois и FixedRows, определяющих размеры фиксированной зоны.

Содержимое ячеек можно редактировать. Для этого в таблице используется специализированный потомок редактора TMaskEdit.

Свойства компонента:

property BorderStyle: TBorderStyle;

Определяет рамку компонента: bsNone нет рамки; bsSingle - рамка толщиной 1 пиксель

property Cells[ACol, ARow: Integer] :String;

Определяет содержимое ячейки с табличными координатами (ACol, ARow)

property Col: Longint;

 

Содержит номер столбца сфокусированной ячейки

property ColCount: Longing-

Содержит количество столбцов таблицы

property Cols[Index: Integer]:

TStrings;

Содержит все строки колонки с индексом Index

property ColWidths[Index: Longint] : Integer;

Содержит ширину столбца с индексом Index

property DefaultColWidth: Integers;

Содержит умалчиваемое значение ширины столбца

property DefaultDrawing: Boolean;

 

 

Разрешает/запрещает автоматическую прорисовку служебных элементов таблицы - фиксированной зоны, фона и прямоугольника сфокусированной ячейки и

т. п.

property DefaultRowHeight: Integers;

Содержит умалчиваемую высоту рядов

property EditorMode: Boolean;

Разрешает/запрещает редактирование ячеек. гнорируется, если свойство Options включает goAlwayseShowEditor или не включает goEditing

property FixedColor: TColor;

Определяет цвет фиксированной зоны

property FixedCois: Integers;

Определяет количество столбцов фиксированной зоны

property FixedRows: Integers;

Определяет количество рядов фиксированной зоны

property GridHeight: Integers;

Содержит высоту таблицы

property GridLineWidth: Integers;

Определяет толщину линий, расчерчивающих таблицу

property GridWidth: Integers;

Содержит ширину таблицы

property LeftCol: Longint;

Содержит номер самого левого столбца, видимого в зоне прокрутки

property Objects [ACols ARow: Integer] : TObject;

Обеспечивает доступ к объекту, связанному с ячейкой (ACol, ARow)

property Options: TGridOptions;

Содержит параметры таблицы (см. ниже)

property Row: Longing;

Содержит номер ряда сфокусированной ячейки

property RowCount: Longint;

Содержит количество рядов таблицы

property RowHeights[Index: Long int] : Integer;

Содержит высоту ряда с индексом index

property Rows[Index: Integer]: TStrings;

Содержит все строки ряда с индексом

Index

type TScrollStyle = (ssNone,

ssHorizontal, ssVertical,

ssBoth) ;

Определяет полосы прокрутки: ssNone -нет полос; ssHorizontal - в таблицу вставляется горизонтальная полоса;

property ScrollBars: TScroll

Style;

ssVertical - вставляется вертикальная

полоса; ssBoth - вставляются обе полосы

TGridRect = record

case Integer of

0: (Left,Top,Right,Bottom: Long int) ;

1: (TopLeft,

BottomRight: TGridCoord) ;

end;

Определяет группу выделенных ячеек в

координатах левая верхняя и правая

нижняя ячейки(нумерация столбцов и рядов идет от нуля, включая столбцы и

ряды фиксированной зоны). После выделения сфокусированной окажется правая нижняя ячейка

property Selection: TGridRect;

property TabStops[Index: Long int] : Boolean;

Разрешает/запрещает выбирать столбец с индексом index при обходе ячеек клавишей Tab. Игнорируется, если Options не содержит goTabs

property TopRow: Longint;

Содержит номер самого верхнего ряда, видимого в прокручиваемой зоне ячеек

property VisibleColCount: Integer;

Содержит количество столбцов, полностью видимых в зоне прокрутки

property VisibleRowCount: Integer;

Содержит количество рядов, полностью видимых в зоне прокрутки

Для компонента определен тип TGridOptions:

type

TGridOption = (goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goDrawFocusSelected, goRowSizing, goColSizing, goRowMoving, goColMoving, goEditing, goTabs, goRowSelect, goAlwaysShowEditor, goThumbTracking);

TGridOptions = set of TGridOptions;