Компонент 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;
Копирование, удаление, перемещение, переименование и проверка на наличие файла в Delphi
Запросы на выборку из БД в Delphi с использованием компонента ADOQuery
Функция DirectoryExists в Delphi, описание и примеры
fotsg
- 05 мая 2023, 13:24 ↓gstof
- 01 марта 2023, 19:07 ↓