Данная группа компонентов предназначена для просмотра и редактирования данных, представленных в виде прямоугольных таблиц ,состоящих из столбцов и строк ,количество и характеристики которых могут изменяться во время выполнения программы. С помощью соответствующих свойств, реализованных в этих компонентах:
- компонент StringGrid. Компонент для редактирования данных в табличной форме;
- компонент DrowGrid. Компонент для отображения данных в табличной форме;
- компонент ValueListEditor. Компонент для редактирования данных в табличной форме;
Все перечисленные компоненты поддерживают следующие возможности:
· отображение таблиц с возможностью изменения видимой области, если вся информация не может быть одновременно выведена на экран;
· редактирование текстовых значений в ячейках;
· изменение высоты строк и ширины столбцов ,а также изменение их положения в таблице;
· организацию «фиксированных » строк и столбцов, не перемещаемых во время прокрутки видимой области;
· гибкую прорисовку ячеек, что позволяет выводить в ячейки таблицы сложные графические данные.
Компонент StringGrid построен на основе (является наследником) DrowGrid и реализует возможности редактирования текста с его автоматическим сохранением в свойстве Cells , представляющем собой интерфейс к двумерному массиву строковых значений:
Property Cells[ACol, ARow: Integer] : String;
Данное свойство доступно во время работы программы для чтения и записи. При изменении какого-либо элемента свойства Cells изображение таблицы автоматически обновляется для отображения нового значения:
Заметим также, что возможностью редактирования обладает и компонент DrowGrid, однако информация, введенная пользователем не сохраняется в компоненте, так как для этого не предусмотрено каких-либо свойств. Таким образом ,компонент DrowGrid используется в основном для отображения какой-либо сложной графической информации ,а компонент StringGrid для отображения и редактирования текстовой информации.
Компонент TStringGrid предназначен для создания таблиц, в ячейках которых располагаются произвольные текстовые строки, расположен на странице Additional.
Рисунок 3
Таблица делится на две части – фиксированную и рабочую. Фиксированная служит для показа заголовков столбцов/строк и для ручного управления их размерами .Обычно фиксированная часть занимает крайний левый столбец и самый верхний ряд таблицы, однако с помощью свойств FixedCols и FixedRows можно задать другое количество фиксированных столбцов и строк(если эти свойства имеют 0 ,таблица не содержит фиксированной зоны). Рабочая часть – это остальная часть таблицы. Она может содержать произвольное количество строк и столбцов ,более того, эти величины могут изменяться программно. Рабочая часть может не умещаться целиком в пределах окна компонента ,в этом случае в него автоматически помещаются нужные полосы прокрутки. При прокрутке рабочей области фиксированная область не исчезает, но меняется ее содержимое- заголовки строк и рядов.
Рисунок 4.
Центральным свойством компонента является Cells- двумерный массив ячеек, каждая из которых может содержать произвольный текст. Конкретная ячейка определяется парой чисел – номером столбца и номером строки, на пересечении которых она находится (нумерация начинается с нуля). Свойство cells имеет тип String , поэтому программа может легко прочитать или записать содержимое нужной ячейки. Например:
Cells[1,1]:= ‘левая верхняя ячейка рабочей зоны’;
Количество ячеек по каждому измерению хранит пара свойств Colcount (количество столбцов) и RowCount (количество рядов). Значения этих свойств и, следовательно, размеры таблицы могут менятьс как на этапе разработки программы, так и в ходе ее работы , однако их значения должны быть как минимум на единицу больше соответственно значенйи в свойствах FixedCols и FixedRows? Определяющих размеры фиксированной зоны№ Свойства компоненты представлены в таблице 1.
Таблица 1 – Свойства компоненты StringGrid
Название
Назначение
Свойства
Name: String
Наименование компоненты (по умолчанию StringGrid)
Cell[ACol, ARow:Integer]: String;
Определяет содержимое ячейки с табличными координатами (ACol, ARow)
ColCount: Longint
Содержит количество столбцов таблицы
EditorMode: Boolean;
Разрешает/запрещает редактирование ячеек
FixedColor: TColor;
Определяет цвет фиксированной зоны
FixedCols: Integer;
Определяет количество столбцов фиксированной зоны
FixedRows: Integer;
Определяет количество строк фиксированной зоны
RowCount: Longint;
Содержит количество рядов таблицы
Пример: Найти сумму всех элементов двумерного массива.
1. Расположить на форме следующие компоненты: StringGrid(Additional), Button, Label, Edit (для вывода результата);
2. Свойства StringGrid, заменить на FixedCols=0(без заголовков строк), FixedRows=0(без заголовков столбцов);