Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КурРаб_ВМИП.doc
Скачиваний:
4
Добавлен:
03.11.2018
Размер:
760.83 Кб
Скачать

6.1.4. Использование компонента StringGrid.

При работе с массивами данных удобно использовать компонент StringGrid, предназначенный для создания таблиц, в ячейках которых располагаются произвольные текстовые строки. В таблицах (рис.6) можно производить обработку данных отдельных ячеек, расчет данных во всей таблице, изменение самой таблицы.

Столбец (Cols)

Рис. 6. Структура компонента StringGrid

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

Например, если необходимо отобразить в ходе выполнения программы 6 столбцов, нужно записать StringGrid1.ColCount:=6.

Если необходимо добавлять (Increase) или уменьшать (Decrease) по одному столбцу или строке в таблице, то, используя свойства ColCount и RowCount, можно записать, соответственно,

StringGrid1.ColCount := StringGrid1.ColCount+1;

//увеличение числа столбцов на единицу

If StringGrid1.RowCount>1 then StringGrid1.RowCount:=

StringGrid1.RowCount – 1; //уменьшение числа строк на единицу.

Зафиксированные ячейки доступны только во время работы программы, поэтому значения этих ячеек устанавливаются через процедуру обработки события OnActivate, которое происходит при активизации формы или события OnCreate, которое происходит при создании формы.

Центральным свойством компонента является свойство Cells[ACol, ARow:Integer] – двумерный массив ячеек. Каждая ячейка может содержать произвольный текст. Индекс ACol определяет столбец, а индекс ARow – строку в таблице. Конкретная ячейка определяется парой чисел – номером колонки и номером ряда, на пересечении которых, она находится, (нумерация начинается с нуля). Свойство Cells можно использовать только во время выполнения программы. Оно доступно для чтения и записи. Свойство Cells имеет тип String, поэтому программа может легко прочитать или записать содержимое нужной ячейки. Например,

Cells[0,1]:= 'USD';//в ячейку, лежащую на пересечении 1столбца и

//2 строки таблицы заносится строка 'USD'

Cells[1,1]:= '28,5';//в ячейку с координатами [1,1] заносится текст '28,5'

При использовании в вычислениях строкового значения '28,5', необходимо сначала осуществить его преобразование в вещественное число с помощью функции StrToFloat(StringGrid1.Cells[1,1]) с последующим обратным преобразованием в строковое значение для занесения в соответствующую ячейку таблицы, например FloatToStr(StringGrid1.Cells[1,2]).

Содержимое ячеек можно редактировать. Для этого в таблице используется специальные свойства, которые могут быть установлены либо с помощью Инспектора Объектов, либо изменены программно:

Options.goEditing:= True; // разрешено редактирование ячеек

Options.goTab:=True; // разрешено использование клавиши Tab

Options.goAlwaysShowEditor:=True;// разрешено редактирование

//ячейки, имеющую фокус ввода после выделения ее клавишей Tab.

Для ручного изменения размеров строк и столбцов используются соответствующие свойства:

Options.goRowSizing:=True; //изменение высоты рядов мышью,

Options.goColSizing:=True; //изменение ширины колонок мышью.

Размеры ячеек в пикселях задают свойства DefaultColWidth и DefaultRowHeight. По умолчанию эти свойства имеют значение 64 и 24 п., соответственно. При необходимости можно на этапе разработки программы, или в ходе ее работы, установить иной размер столбцов и/или строк. Например, строки кода:

DefaultColWidth:=80; //задание ширины столбцов в 80 п.

DefaultRowHeight:=20; //задание высоты строк таблицы в 20 п.