Ввод массива
Begin
Var
Var
Const
Implementation
Var
Public
Private
Type
Uses
Interface
Windows, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
TForm1 = class(TForm);
Button1: TButton;
Label1: TLabel;
procedure ButtonlClick(Sender: TObject);
{ Private declarations }
{ Public declarations }
end;
Form1: TForm1;
($R *.dfm}
NT = 5;
team: array[1..NT] of string[10] =
('Зенит','Динамо','Ротор','Спартак','СКА');
procedure TForml.ButtonlClick(Sender: TObject);
st:string; // список команд
i:integer; // индекс, номер элемента массива
// формирование списка для отображения в форме
for i:=l to NT do st := st + IntToStr(i)+ ' '
+ team[i] + #13; // вывод списка Label1.Caption := st;
end;
end;
Под вводом массива понимается процесс получения от пользователя (или из файла) во время работы программы значений элементов массива.
"Лобовое" решение задачи ввода элементов массива — для каждого элемента массива создать поле ввода. Однако если требуется ввести достаточно большой массив, то такое решение неприемлемо. Представьте форму, например, с десятью полями редактирования!
Очевидно, что последовательность чисел удобно вводить в строку таблицы, где каждое число находится в отдельной ячейке. Ниже рассматриваются два варианта организации ввода массива с использованием компонентов StringGrid и Memo.
Использование компонента StringGrid
Для ввода массива удобно использовать компонент StringGrid. Значок компонента StringGrid находится на вкладке Additional.
Рисунок 14.2. - Компонент StringGrid
Компонент StringGrid представляет собой таблицу, ячейки которой содержат строки символов. В табл. 14.1 перечислены некоторые свойства компонента StringGrid.
Таблица 14.1- Свойства компонента StringGrid
Свойство | Определяет |
Name | Имя компонента. Используется в программе для доступа к свойствам компонента |
ColCount | Количество колонок таблицы |
RowCount | Количество строк таблицы |
Cells | Соответствующий таблице двумерный массив. Ячейка таблицы, находящаяся на пересечении столбца номер col и строки номер row определяется элементом cells [col, row] |
FixedCols | Количество зафиксированных слева колонок таблицы. Зафиксированные колонки выделяются цветом и при горизонтальной прокрутке таблицы остаются на месте |
FixedRows | Количество зафиксированных сверху строк таблицы. Зафиксированные строки выделяются цветом и при вертикальной прокрутке таблицы остаются на месте |
Options . goEditing | Признак допустимости редактирования содержимого ячеек таблицы. True — редактирование разрешено, False — запрещено |
Options . goTab | Разрешает (True) или запрещает (False) использование клавиши <Таb> для перемещения курсора в следующую ячейку таблицы |
Options . GoAlways-ShowEditor | Признак нахождения компонента в режиме редактирования. Если значение свойства False, то для того, чтобы в ячейке появился курсор, надо начать набирать текст, нажать клавишу <F2> или сделать щелчок мышью |
DefaultColWidth | Ширину колонок таблицы |
DefaultRowHeight | Высоту строк таблицы |
GridLineWidth | Ширину линий, ограничивающих ячейки таблицы |
Left | Расстояние от левой границы поля таблицы до левой границы формы |
Top | Расстояние от верхней границы поля таблицы до верхней границы формы |
Height | Высоту поля таблицы |
Width | Ширину поля таблицы |
Font | Шрифт, используемый для отображения содержимого ячеек таблицы |
ParentFont | Признак наследования характеристик шрифта формы |
В качестве примера использования компонента StringGrid для ввода массива рассмотрим программу, которая вычисляет среднее арифметическое значение элементов массива. Диалоговое окно программы приведено на рис.14.3. Компонент StringGrid используется для ввода массива, компоненты Label1 и Label2 — для вывода пояснительного текста и результата расчета, Buttoni — для запуска процесса расчета.
Рисунок 14.3 - Диалоговое окно программы Ввод и обработка массива
Добавляется компонент StringGrid в форму точно так же, как и другие компоненты. После добавления компонента к форме нужно выполнить его настройку в соответствии с табл. 14.1. Значения свойств Height и width следует при помощи мыши установить такими, чтобы размер компонента был равен размеру строки.
Текст программы приведен в листинге 2.
Листинг 2. Ввод и обработка массива целых чисел
unit getar_;