Работа с компонентом 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;
Дата добавления: 2015-04-10; просмотров: 1100;