Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Создание процедур обработки событий SpinEdit1Change и SpinEdit2Change




События SpinEdit1Change и SpinEdit2Change возникают при любом изменении значения в поле редактора SpinEdit1 и SpinEdit2 соответственно. Создадим процедуры обработки этих событий, в которых присвоим значения n и m, полученные из полей редакторов SpinEdit, свойствам ColCount и RowCount компонентов StringGrid. Это позволит управлять размерами таблиц StringGrid с помощью компонентов SpinEdit без дополнительных кнопок, так как изменение значений в поле редактора SpinEdit сразу приведет к изменению размера таблиц StringGrid. Дважды щелкните “мышью” на компоненте SpinEdit1 – курсор установится в тексте процедуры-обработчика события SpinEdit1Change: procedure TForm1.SpinEdit1Change(Sender: TObject). Внимательно наберите операторы этой процедуры, используя текст модуля UnMas(см. п.4.1.3). Аналогичным образом создайте процедуру-обработчик события SpinEdit2Change: procedure TForm1.SpinEdit2Change(Sender: TObject).

Текст модуля UnMas

Unit UnMas;

Interface

Uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, Spin, Grids;

 

Type

TForm1 = class(TForm)

Label1: TLabel;

SpinEdit1: TSpinEdit;

SpinEdit2: TSpinEdit;

Label8: TLabel;

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

StringGrid3: TStringGrid;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

SpinEdit3: TSpinEdit;

SpinEdit4: TSpinEdit;

Label6: TLabel;

Label7: TLabel;

Button1: TButton;

procedure FormCreate(Sender: TObject);

procedure SpinEdit1Change(Sender: TObject);

procedure SpinEdit2Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

End;

Var

Form1: TForm1;

Implementation

{$R *.DFM}

Var

A:array[1..6,1..8] of extended;// объявление двумерного массива A

X:array[1..8] of extended; // объявление одномерного массива X

Y:array[1..6] of extended; // объявление одномерного массива Y

n,m,p,q:integer; // объявление глобальных переменных

procedure TForm1.FormCreate(Sender: TObject);

Begin

SpinEdit1.Text:=' 4 '; // начальное значение n

SpinEdit2.Text:=' 6 '; // начальное значение m

SpinEdit3.Text:=' 2 '; // начальное значение p

SpinEdit4.Text:=' 3 '; // начальное значение q

StringGrid1.RowCount:=4; // количество строк массива A

StringGrid1.ColCount:=6; // количество столбцов массива A

StringGrid2.RowCount:=6; // количество строк массива X

StringGrid3.RowCount:=4; // количество строк массива Y

End;

procedure TForm1.SpinEdit1Change(Sender: TObject);

Begin

n:=StrToInt(SpinEdit1.Text);// n присваивается содержимое поля редактора

StringGrid1.RowCount:=n; // устанавливается количество строк массива A

StringGrid3.RowCount:=n; // устанавливается количество строк массива Y

End;

procedure TForm1.SpinEdit2Change(Sender: TObject);

Begin

m:=StrToInt(SpinEdit2.Text);// m присваивается содержимое поля редактора

StringGrid1.ColCount:=m; // устанавливается количество столбцов массива A

StringGrid2.RowCount:=m; // устанавливается количество строк массива X

End;

procedure TForm1.Button1Click(Sender: TObject);

Var

i,j:integer; // объявление локальных переменных

Begin

n:=StrToInt(SpinEdit1.Text);

StringGrid1.RowCount:=n;

StringGrid3.RowCount:=n;

m:=StrToInt(SpinEdit2.Text);

StringGrid1.ColCount:=m;

StringGrid2.RowCount:=m;

p:=StrToInt(SpinEdit3.Text);

q:=StrToInt(SpinEdit4.Text);

// Ввод значений из таблицы в массив A

for i:=1 to n do

for j:=1 to m do

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

for j:=1 to m do // формирование массива X и вывод его значений в таблицу

Begin

X[j]:=A[p,j];

StringGrid2.Cells[0,j-1]:=FloatToStrF(X[j],ffFixed,3,1);

End;

for i:=1 to n do // формирование массива Y и вывод его значений в таблицу

Begin

Y[i]:=A[i,q];

StringGrid3.Cells[0,i-1]:=FloatToStrF(Y[i],ffFixed,3,1);

End;

End;

End.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных