- •Часть III
- •Свойства компонента Edit (поле ввода-редактирования)
- •Свойства компонента Label (поле ввода-редактирования)
- •Свойства компонента Button (командная кнопка)
- •Пример составления программы
- •Значение свойства Caption для переменных типа Label
- •Значение свойства Caption для переменных типа Button
- •Задания по вариантам
- •Свойства компонента RadioGroup
- •Пример составления программы
- •Задания по вариантам
- •Лабораторная работа №3 Цель работы
- •Программа работы
- •Пример составления программы
- •Задания по вариантам
- •Пример составления программы
- •Задания по вариантам
- •Свойства компонента CheckBox
- •Свойства компонента SpinEdit
- •Пример составления программы
- •Задание по вариантам
- •Пример составление программы
- •Свойства компонента Memo
- •Свойства компонента ProgressBar
- •Пример составление программы
- •Составление системы уравнений для схемы
- •Задания по вариантам
- •Литература
Лабораторная работа №3 Цель работы
Изучить компонент StringGrid.
Программа работы
Используя компонент StringGrid, написать программу для соответствующего варианта (номер определяется преподавателем).
Компонент StringGrid удобно использовать для ввода массива. Значок компонента StringGrid находится на вкладке Additional.
Компонент StringGrid представляет собой таблицу, ячейки которой содержат строки символов. В табл. 3.1 перечислены некоторые свойства компонента StringGrid.
Таблица 3.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 |
Высоту строк таблицы |
GridLineWi-dth |
Ширину линий, ограничивающих ячейки таблицы |
Left |
Расстояние от левой границы поля таблицы до левой границы формы |
Top |
Расстояние от верхней границы поля таблицы до верхней границы формы |
Height |
Высоту поля таблицы |
Width |
Ширину поля таблицы |
Font |
Шрифт, используемый для отображения содержимого ячеек таблицы |
ParentFont |
Признак наследования характеристик шрифта формы |
Пример составления программы
Пример 3.1. В качестве примера использования компонента StringGrid для ввода массива рассмотрим программу, которая вычисляет среднее арифметическое значение элементов массива. В программе будем использовать следующие компоненты: StringGrid – для ввода массива, компонент Label1 — для вывода пояснительного текста, Button1 и Button2 — для запуска процесса расчета и выхода из программы.
Добавляется компонент StringGrid в форму точно так же, как и другие компоненты. После добавления с ним необходимо произвести следующие операции:
1. Свойству FixedCols присвоить значение 0;
2. Свойству FixedRows присвоить значение 0;
3. Свойству RowCount присвоить значение 3;
4. Свойству ColCount присвоить значение 3;
5. В разделе Options свойству GoEditing присвоить значение true.
После выполнения этих операций компонент StringGrid можно будет использовать для ввода двумерного массива размерностью 33.
В поля Caption компонентов Label1, Button1 и Button2 необходимо ввести строки «Исходные данные», «Расчет» и «Выход» соответственно. Компоненты необходимо будет расположить на форме так, как это показано на рис.1.
После этого необходимо будет создать процедуру TForm1.Button1Click для ввода массива и его обработки, а так же процедуру TForm1.Button2Click для выхода из программы (см. работу №1). Текст процедуры TForm1.Button1Click приведен ниже.
Procedure TForm1.Button1Click(Sender: TObject);
Var i,j:byte;
sum:real;
Begin
sum:=0;
For i:=0 to 2 do
For j:=0 to 2 do
If length(StringGrid1.Cells[i,j])<>0 then
sum:=sum + StrToFloat(StringGrid1.Cells[i,j])
else
begin
ShowMessage('не все ячейки заполнены!');
exit;
end;
ShowMessage(FloatToStr(sum));
end;
Рисунок 3.1 Форма для программы ввода массива
При заполнении компонента StringGrid числами их величины хранятся в свойстве Cells, которое представляет собой двумерный строковый массив размерностью [0..RowCount-1,0..ColCount-1]. Особое внимание следует обратить на то, что элементы массива нумеруются с 0! Два цикла по переменным i и j отвечают за считывание содержимого массива Cells, преобразование строк в числа и определение суммы элементов массива. В программе предусмотрен так же контроль заполнения ячеек, если хотя бы одна не заполнена, то работа программы прерывается с выводом соответствующего сообщения. Результат расчета выводится с помощью процедуры ShowMessage (см. работу №2).
После запуска программы необходимо заполнить ячейки таблицы элементами массива и нажать кнопку «Расчет». Результаты работы программы приведены на рис.3.2.
Рисунок 3.2. Результаты работы программы