Настройка компонента TStringGrid

Для установки компонента TStringGrid на форму необходимо на странице Additional палитры компонентов щелкнуть мышью по пиктограмме . После этого щелкните мышью в нужном месте формы. Захватывая кромки компонента, отрегулируйте его размер. В инспекторе объектов значения свойств ColCount и RowCount установите 2, а FixedCols и FixedRows установите 1. Так как компоненты StringGrid2 и StringGrid3 имеют только один столбец, то у них: ColCount=1, RowCount=2, FixedCols=0 и FixedRows=1. По умолчанию в компонент TStringGrid запрещен ввод информации с клавиатуры, поэтому необходимо свойство Options goEditing для компонентов StringGrid1 и StringGrid2 установить в положение True.

Текст программы:

Unit LabRab_4;

Interface

Uses

Windows, Messages, SysUtils, Classes, Graphics, Controls,

Forms, Dialogs, StdCtrls, ExtCtrls, Grids;

type

TInputForm = class(TForm)

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

StringGrid3: TStringGrid;

Label1: TLabel;

Edit1: TEdit;

Button1: TButton;

Button2: TButton;

Procedure FormCreate(Sender: TObject);

Procedure Button1Click(Sender: TObject);

Procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

const

Nmax = 10; // Максимальная размерность массива

type

TMas1 = array[1..Nmax] of Extended; // Объявление типа одномерного массива

TMas2 = array[1..Nmax, 1..Nmax] of Extended; // Объявление типа двумерного массива

var

InputForm: TInputForm;

A: TMas2; // Объявление двумерного массива

B, Y: TMas1; // Объявление одномерных массивов

N, i, j: integer;

Implementation

{$R *.dfm}

Procedure TInputForm.FormCreate(Sender: TObject);

begin

N:= 3; // Размерность массива

Edit1.Text:= IntToStr(N);

// Задание числа строк и столбцов

StringGrid1.ColCount:= N + 1;

StringGrid1.RowCount:= N + 1;

StringGrid2.RowCount:= N + 1;

StringGrid3.RowCount:= N + 1;

// Ввод в левую верхнюю ячейку таблицы названия массива

StringGrid1.Cells[0, 0]:= 'Массив A';

StringGrid2.Cells[0, 0]:= 'Массив B';

StringGrid3.Cells[0, 0]:= 'Массив Y';

// Заполнение верхнего и левого столбцов поясняющими подписями

for i:=1 to N do

begin

StringGrid1.Cells[0, i]:= 'i='+ IntToStr(i);

StringGrid1.Cells[i, 0]:= 'j='+ IntToStr(i);

end;

end;

Procedure TInputForm.Button1Click(Sender: TObject);

begin

N:= StrToInt(Edit1.Text);

// Задание числа строк и столбцов в таблицах

StringGrid1.ColCount:= N + 1;

StringGrid1.RowCount:= N + 1;

StringGrid2.RowCount:= N + 1;

StringGrid3.RowCount:= N + 1;

// Заполнение верхнего и левого столбцов поясняющими подписями

for i:=1 to N do

begin

StringGrid1.Cells[0, i]:= 'i=' + IntToStr(i);

StringGrid1.Cells[i, 0]:= 'j=' + IntToStr(i);

end;

end;

Procedure TInputForm.Button2Click(Sender: TObject);

var

s: extended;

begin

// Заполнение массива A элементами из таблицы StringGrid1

for i:=1 to N do

for j:=1 to N do

A[i, j]:= StrToFloat(StringGrid1.Cells[j, i]);

// Заполнение массива B элементами из таблицы StringGrid2

for i:=1 to N do

B[i]:= StrToFloat(StringGrid2.Cells[0, i]);

// Умножение массива A на массив B

for i:=1 to N do

begin

s:= 0;

for j:=1 to N do

s:= s + A[i, j]*B[j];

Y[i]:= s;

// Вывод результата в таблицу StringGrid3

StringGrid3.Cells[0, i]:= FloatToStrF(Y[i], ffFixed, 6, 2);

end;

end;

end.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: