- •Компоненты Lazarus для работы с массивами и матрицами
- •Компонент: таблица StringGrid
- •Компонент: таблица StringGrid
- •Пример использования StringGrid
- •Пример использования StringGrid
- •Пример использования StringGrid для ввода матриц
- •Пример использования StringGrid для вывода матриц
- •Пример использования StringGrid
Компоненты Lazarus для работы с массивами и матрицами
Компонент: таблица 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 |
Высота строк таблицы |
Компонент: таблица StringGrid
Компонент StringGrid имеет возможность адресации каждой отдельной ячейки по номеру столбца и строки. Содержимое ячейки (i, j),
где i - номер столбца, j - номер строки, имеет вид
StringGrid1.Cells[i, j]
и доступно как для чтения, так и для записи.
Номера столбцов ( i ) и строк ( j ) отсчитываются от 0 !!!.
Очистка компонента StringGrid
Пример использования 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.
Пример использования 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», а также выполняет функции фильтрации данных (в ячейку разрешено вводить только цифры).
Пример использования StringGrid для ввода матриц
Выполнить ввод матрицы из компонента StringGrid
Пример использования 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 |
Пример использования StringGrid
Найти максимальный компонент матрицы и его местонахождение
Обработчик нажатия по кнопке «Найти максимум»