![](/user_photo/_userpic.png)
- •Компоненты Lazarus для работы с массивами и матрицами
- •Компонент: таблица StringGrid
- •Компонент: таблица StringGrid
- •Пример использования StringGrid
- •Пример использования StringGrid
- •Пример использования StringGrid для ввода матриц
- •Пример использования StringGrid для вывода матриц
- •Пример использования StringGrid
![](/html/66936/286/html__FmT8hexJm.G5Ek/htmlconvd-3m7Z8z1x1.jpg)
Компоненты Lazarus для работы с массивами и матрицами
![](/html/66936/286/html__FmT8hexJm.G5Ek/htmlconvd-3m7Z8z2x1.jpg)
Компонент: таблица StringGrid
Компонент StringGrid находится на странице Additional палитры компонентов. StringGrid - компонент для отображения различных данных в табличной форме.
Таблица StringGrid состоит из выделенных серым FixedCols и FixedRows -
зафиксированных ячеек-заголовков, и обычных, белых ячеек. Содержимое Fixed ячеек |
||
недоступно редактированию, и меняется только программно. |
||
Свойство |
Основные свойства компонента StringGrid |
|
Определение |
||
ColCount |
Количество столбиков таблицы |
|
RowCount |
Количество строк таблицы |
|
Cells |
Соответствующий таблице двумерный массив. Ячейка таблицы, которая |
|
находится на пересечении столбца col и строки row определяется элементом |
||
|
cells[col, row] |
|
FixedCols |
Количество зафиксированных налево столбиков таблицы. |
|
FixedRows |
Количество зафиксированных сверху строк таблицы. |
|
Options.goEditing |
Признак допустимости редактирования содержания ячеек таблицы. True — |
|
|
редактирование разрешено, False — запрещено |
|
Options.goTab |
Позволяет (True) или запрещает (False) использование клавиши <Таb> для |
|
перемещения курсору в следующую ячейку таблицы |
||
|
||
DefaultColWidth |
Ширина столбиков таблицы |
|
DefaultRowHeight |
Высота строк таблицы |
![](/html/66936/286/html__FmT8hexJm.G5Ek/htmlconvd-3m7Z8z3x1.jpg)
Компонент: таблица StringGrid
Компонент StringGrid имеет возможность адресации каждой отдельной ячейки по номеру столбца и строки. Содержимое ячейки (i, j),
где i - номер столбца, j - номер строки, имеет вид
StringGrid1.Cells[i, j]
и доступно как для чтения, так и для записи.
Номера столбцов ( i ) и строк ( j ) отсчитываются от 0 !!!.
Очистка компонента StringGrid
![](/html/66936/286/html__FmT8hexJm.G5Ek/htmlconvd-3m7Z8z4x1.jpg)
Пример использования StringGrid
Вычислить сумму и среднее арифметическое компонентов массива
procedure TForml.ButtonlClick(Sender: TObject); var
a : array[1..5] of integer; // массив summ: integer; // сумма элементов sr: real; // среднее арифметическое i: integer; // индекс
begin
//ввод массива for i: = 1 to 5 do
if Length(StringGridl.Cells[i-1, 0]) <>0 then a[i] := StrToInt(StringGridl.Cells[i-1,0])
else
a[i] : = 0;
//обработка массива
summ := 0;
for i :=1 to 5 do summ := summ + a[i]; sr : = summ / 5;
// вывод результата
Label2.Caption : ='Сумма элементов: ' + IntToStr(summ)+ #13+ ‘Среднее арифметическое: ' + FloatToStr(sr);
end;
end.
![](/html/66936/286/html__FmT8hexJm.G5Ek/htmlconvd-3m7Z8z5x1.jpg)
Пример использования StringGrid
Вычислить сумму и среднее арифметическое компонентов массива
Процедура оброботки события OnKeyPress
procedure TForm1.StringGridlKeyPress(Sender: TObject; var Key: Char); begin
case Key of
#8, '0'..'9':; //цифры и клавиша <Backspace> #13: // клавиша <Enter>
if StringGridl.Col < StringGridl.ColCount -1 then StringGridl.Col : = StringGridl.Col + 1;
else key : = Chr(0); // если выбраны другие символы end;
end;
Данная процедура выполняет автоматический перевод курсора в следующую ячейку при нажатии «Enter», а также выполняет функции фильтрации данных (в ячейку разрешено вводить только цифры).
![](/html/66936/286/html__FmT8hexJm.G5Ek/htmlconvd-3m7Z8z6x1.jpg)
Пример использования StringGrid для ввода матриц
Выполнить ввод матрицы из компонента StringGrid
![](/html/66936/286/html__FmT8hexJm.G5Ek/htmlconvd-3m7Z8z7x1.jpg)
Пример использования StringGrid для вывода матриц
Выполнить вывод матрицы в компонент StringGrid
Свойства компонента StringGrid
Свойство Значение
Name |
mb |
ColCount |
5 |
ColCount |
5 |
FixedCol |
1 |
FixedRow |
1 |
Options.goColSizing |
true |
Options.goRowSizing |
true |
Options.goEditing |
true |
Options.Tabs |
true |
![](/html/66936/286/html__FmT8hexJm.G5Ek/htmlconvd-3m7Z8z8x1.jpg)
Пример использования StringGrid
Найти максимальный компонент матрицы и его местонахождение
Обработчик нажатия по кнопке «Найти максимум»