Компонент Delphi StringGrid используется для отображения информации в табличной форме. В панели компонентов Delphi расположен на закладке Additional.
В основном ячейки компонента StringGrid могут содержать строковые значения, но можно так же добавить изображения в ячейки StringGrid.
При установке компонента на форму, по умолчанию имеется поля таблицы с первыми фиксированными колонкой и строкой. Редактировать после запуска программы можно только область белых ячеек. Фиксированные ячейки используются в основном для подписей столбцов и строк, а так же чтобы ограничить пользователя в возможности их редактировать.
Рисунок: Компонент StringGrid
* Здесь указаны только специфические свойства данного компонента. Свойства типичные для большинства компонентов, такие как свойства позиционирования можно найти в отдельной статье.
| Свойство | Тип данных | Описание |
|---|---|---|
| ColCount | Целое число | Количество колонок в таблице |
| RowCount | Целое число | Количество строк в таблице |
| DefaultColWidth | Целое число | Ширина колонок в таблице |
| DefaultRowHeight | Целое число | Высота строк в таблице |
| FixedCols | Целое число | Количество зафиксированных колонок слева таблицы |
| FixedRows | Целое число | Количество зафиксированных колонок сверху таблицы |
| GridLineWidth | Целое число | Ширина линии ограничивающиая ячейки таблицы |
| Options | Вложенные свойства | Определяют группу параметров компонентов |
| Font | Вложенные свойства | Шрифт отображения содержимого ячеек |
В следующей таблице описаны параметры свойства Options компонента.
| Свойство | Тип данных | Описание |
|---|---|---|
| goFixedVertLine | Логический | Вертикальные разделительные линии между «фиксированными» ячейками |
| goFixedHorzLine | Логический | Горизонтальные разделительные линии между «фиксированными» ячейками |
| goVertLine | Логический | Вертикальные разделительные линии между всеми ячейками |
| goHorzLine | Логический | Горизонтальные разделительные линии между всеми ячейками |
| goRangeSelect | Логический | Включение режима выделения диапазона ячеек таблицы |
| goDrawFocusSelected | Логический | Дает возможность закрашивания ячейки с фокусом |
| goRowSizing | Логический | Дает возможность менять высоту строк с помощью мыши |
| goColSizing | Логический | Дает возможность менять ширину столбцов с помощью мыши |
| goRowMoving | Логический | Дает возможность перемещать строку с помощью мыши |
| goColMoving | Логический | Дает возможность перемещать столбец с помощью мыши |
| goEditing | Логический | Управляет режимом редактирования содержимого ячейки |
| goTabs | Логический | Управляет режимом перехода табуляцией: при True фокус будет смещаться на следующую ячейку, при False — на следующий компонент |
| goRowSelect | Логический | Дает возможность выделять всю строку с «фокусированной» ячейкой |
| goAlwaysShowEditor | Логический | Если True содержимое ячейки при фокусе сразу будет доступно редактированию, а при False — сначала нужно щёлкнуть по ячейке мышкой |
| goThumbTracking | Логический | Мышкой будет вызываться немедленное перемещение ячеек, а при False — ячейки будут перемещаться только при отпускании скрола |
Назначения размера таблицы:
MyStringGrid.ColCount := 10;
MyStringGrid.RowCount := 20;
Программный ввод данных в ячейки таблицы:
MyStringGrid.Cells[1, 2] := 'Мой текст';
здесь значения: 1 – номер столбца, 2 – номер строки.
Следует обратить внимание на то, что нумерация ячеек и столбцов начинается с нуля. Соответственно, если вы хотите вывести данные в крайнюю левую верхнюю ячейку, следует указать значения:
MyStringGrid.Cells[0, 0] := 'Мой текст';
Пронумеровать колонку:
var
i : Integer;
begin
for i := 0 to MyStringGrid.RowCount - 1 do
MyStringGrid.Cells[0, i] := IntToStr(i);
end;
Выделение отдельной ячейки:
MyStringGrid.Col := 2; // столбец
MyStringGrid.Row := 2; // строка
Программное управление групповым свойством Options:
// Включение редактирования, другие параметры без изменений
MyStringGrid.Options:=MyStringGrid.Options+[goEditing];
// Выключение редактирования, другие параметры без изменений
MyStringGrid.Options:=MyStringGrid.Options-[goEditing];
// Указывается список включенных параметров, остальные выключены
MyStringGrid.Options:=[goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine];
Очистка всех ячеек может быть выполнена по столбцам, строкам или по отдельным ячейкам:
// по столбцам
var
i : Integer;
begin
for i := 0 to MyStringGrid.ColCount - 1 do
MyStringGrid.Cols[i].Clear;
end;
// по строкам
var
i : Integer;
begin
for i := 0 to MyStringGrid.RowCount - 1 do
MyStringGrid.Rows[i].Clear;
end;
// по отдельным ячейкам
var
i, j: Integer;
begin
for i := 0 to MyStringGrid.RowCount - 1 do
for j := 0 to MyStringGrid.ColCount - 1 do
MyStringGrid.Cells[j, i]:='';
end;
Картинки в ячейках StringGrid Delphi
Функция DirectoryExists в Delphi, описание и примеры
Изменение цвета ячеек Delphi Stringgrid
fotsg
- 05 мая 2023, 13:24 ↓gstof
- 01 марта 2023, 19:07 ↓