Работа с компонентом StringGrid

Для ввода и вывода результатов в табличном виде удобно использовать компонент TStringGrid, расположенный на странице Additional. Этот компонент называют таблицей или сеткой.

Для задания размера таблицы используются свойства ColCount (число столбцов) и RowCount (число строк) типа Integer. Задавать значения размеров можно как через Инспектор Объектов, так и динамически, во время выполнения приложения.

По умолчанию, верхняя строка и левый столбец сетки выделены серым цветом (зафиксированы, их можно использовать в качестве заголовков). Для изменения количества зафиксированных столбцов и строк используется свойства FixedCols (столбцы) и FixedRows (строки) типа Integer. При прокрутке содержимого сетки фиксированные столбцы и строки остаются в неподвижном состоянии. Пользователю не разрешен доступ к фиксированным ячейкам, изменить их значения можно только программно.

Если данные, помещенные в таблицу не умещаются в отведенную для таблицы область, то могут автоматически появляться полосы прокрутки. Управлять отображением полос прокрутки можно через свойство ScrollBar, которое может принимать следующие значения:

ü ssNone – полосы прокрутки не допускаются

ü ssHorizontal – допускается горизонтальная полоса прокрутки

ü ssVertical – допускается вертикальная полоса прокрутки

ü ssBoth – допускаются обе полосы прокрутки (по умолчанию).

Управлять размером ячеек сетки в пикселях можно через свойство DefaultColWidth (ширина ячейки) DefaultRowHeight (высота ячейки) типа Integer. По умолчанию эти свойства равны соответственно 64 и 24 пикселя. Свойство ColWidths[Index:LongInt] и RowHeight [Index:LongInt] типа Integer позволяют задавать ширину столбца и высоту строки соответственно с номером Index.

Для доступа к отдельной ячейке используется свойство Cells [ACol,ARow:Integer] типа String. Индекс ACol определяет столбец, ARow определяет строку [5].

По умолчанию, ввод данных во время работы приложения в компонент StringGrid не разрешен. Для того, чтобы разрешить ввод и редактирование данных, например, для работы с массивом данных, используют свойство Options множественного типа TGridOptions, для чего значению goEditing устанавливают True. На рисунке 25 показано, как изменить данное свойство.

Рисунок 25 - Установка свойства Options

Пример 14. Рассчитать значения функции на интервале [а,b] с шагом h. Результаты расчета поместить в таблицу (продолжение примера 13). Изменим форму приложения следующим образом: вместо компонента Memo на форме расположим компонент StringGrid и уберем компонент SaveDialog. Внешний вид приложения показан на рисунке 26.

Рисунок 26 - Внешний вид приложения на этапе конструирования

В таблице 8 представлены значения свойств для компонента StringGrid.

Таблица 8

ColCownt  
RowCownt  
FixedRows  
FixedCols  
ScrollBars ssVertical

Событие нажатие на кнопку «Расчет» изменится следующим образом: (вместо работы с Memo запишем следующее):

// верхняя левая ячейка имеет подпись х

Form1.StringGrid1.Cells[0,0]:=' x ';

// верхняя правая ячейка имеет подпись у

Form1.StringGrid1.Cells[1,0]:=' y ';

// очищаем все значения таблицы

for i:=1 to Form1.StringGrid1.RowCount-1 do

begin

Form1.StringGrid1.Cells[0,i]:='';

Form1.StringGrid1.Cells[1,i]:='';

end;

Form1.StringGrid1.RowCount:=5;

i:=1;

while a<=b do

begin

y:=a*a;

{ если кол-во строк в таблице<кол-ва значений результатов

расчета, то увеличиваем значение числа строк }

if i>Form1.StringGrid1.RowCount

then Form1.StringGrid1.RowCount:=

Form1.StringGrid1.RowCount+1;

Form1.StringGrid1.Cells[0,i]:=

FloatToStr(a);

Form1.StringGrid1.Cells[1,i]:=

FloatToStr(y);

a:=a+h;

inc(i);

end;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: