logo
Программирование в среде Delphy / Программирование в среде Delphi

22.2. Компоненты tDrawGrid и tStringGrid

Компонент TDrawGrid представляет собой универсальную таблицу. Таблица делится на две области: фиксированную и подвижную. Фиксированная область предназначена для заголовков строк и столбцов.

Рис.22.3. Вид компонента TDrawGrid

Основными свойствами этого компонента являются:

Property ColCount:Integer; – количество столбцов;

Property RowCount:Integer; – количество строк;

Property Col:Integer; – текущая колонка;

Property Row:Integer; – текущая строка;

Property FixedCols:Integer; – число фиксированных столбцов;

Property FixedRows:Integer; – число фиксированных строк;

Property DefoultDrawing:Boolean; – если это свойство задать равным False, то программист должен предусмотреть отрисовку содержимого компонента в обработчике события:

Property OnDrawCell:TDrawCellEvent; – в нем следует предусмотреть отрисовку каждой ячейки таблицы.

Рассмотрим пример отрисовки в компоненте DrawGrid1 шахматной доски:

Procedure TForm1.DrawGrid1DrawCell(Sender:TObject; Col,Row:Longint; Rect:Trect; State:TGridDrawState);

Begin

With DrawGrid1.Canvas do Begin

If not Odd(Col+Row) then Brush.Color:=clBlack else

Brush.Color:=clWhite; // Выбор цвета кисти

FillRect(Rect); // Закраска текущей ячейки

32 пиксела

96 пикселей

End;

End;

Здесь Col и Row определяют номер текущей ячейки таблицы, Rect – прямоугольник текущей ячейки, State – состояние текущей ячейки, которое может быть следующим:

gdSelected – текущая выбранная ячейка,

gdFocused – текущая ячейка имеет фокус,

gdFixed – текущая ячейка принадлежит фиксированной области.

Компонент TStringGrid наследует компонент TDrawGrid и все его свойства. Этот компонент используется для отображения таблицы строк. Его основным свойством является:

Property Cells[ACol, ARow:Integer]:String; – в этом свойстве хранят значения всех строк таблицы.