ВУЗ:
Составители:
31
2.10.2. ɋɨɡɞɚɧɢɟ ɤɥɢɟɧɬɚ
type
TMainForm = class(TForm)
lb: TListBox;
bCreate: TButton;
bRun: TButton;
sg: TStringGrid;
procedure bCreateClick(Sender: TObject);
procedure bRunClick(Sender: TObject);
private
{ Private declarations }
public
v: IVectSrv;
vm: IMatrixSrv;
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
var X, Y, A , B: olevariant; // ɇɭɠɧɵ ɞɥɹ ɩɟɪɟɞɚɱɢ ɜ COM ɫɟɪɜɟɪ
DynArr : array of array of integer;
// ɞɢɧɚɦɢɱɟɫɤɢɣ ɞɜɭɦɟɪɧɵɣ ɦɚɫɫɢɜ
{$R *.dfm}
procedure TMainForm.bCreateClick(Sender: TObject);
var
I, J: Integer;
begin
// Ⱦɥɹ ɢɥɥɸɫɬɪɚɰɢɢ ɡɞɟɫɶ ɩɪɢɦɟɧɟɧɵ ɞɜɚ ɫɩɨɫɨɛɚ.
// Ɉɞɧɨɦɟɪɧɵɣ ɦɚɫɫɢɜ ɫɨɡɞɚɟɬɫɹ ɤɚɤ ɜɚɪɢɚɧɬɧɵɣ.
// Ɇɚɬɪɢɰɚ - ɤɚɤ ɞɢɧɚɦɢɱɟɫɤɢɣ ɞɜɭɦɟɪɧɵɣ ɦɚɫɫɢɜ.
// Ɂɚɞɚɟɦ ɞɥɢɧɭ 2 ɧɚ 2 ɞɜɭɦɟɪɧɨɝɨ ɞɢɧɚɦɢɱɟɫɤɨɝɨ ɦɚɫɫɢɜɚ
SetLength (DynArr,2,2);
// .. ɢ ɡɚɩɨɥɧɹɟɦ (ɥɭɱɲɟ ɷɬɨ ɫɞɟɥɚɬɶ ɩɨ-ɞɪɭɝɨɦɭ - ɢɡ ɮɚɣɥɚ, ɫɩɢɫɤɚ ɢɥɢ
ɫɟɬɤɢ)
DynArr[0,0]:=1;
DynArr[1,1]:=3;
32
DynArr[0,1]:=4;
DynArr[1,0]:=2;
// ȼɵɜɨɞɢɦ ɜ ɫɟɬɤɭ
sg.ColCount := 2;
sg.RowCount := 2;
with sg do
for I := 0 to ColCount - 1 do
for J:= 0 to RowCount - 1 do
Cells[J,I] := IntToStr(DynArr[I,J]);
// ɋɨɡɞɚɟɦ ɨɞɧɨɦɟɪɧɵɣ ɜɚɪɢɚɧɬɧɵɣ ɦɚɫɫɢɜ
X := VarArrayOf ([1.2, 2.5, 3, 4.8]);
// ȼɵɜɨɞɢɦ ɜ ListBox
lb.Clear;
for i:=0 to VarArrayHighBound(X,1) do
lb.Items.Add(FloatToStr(X[i]));
// Ɂɚɩɭɫɤɚɟɦ ɫɟɪɜɟɪ
V := CreateComObject(Class_VectSrv) as IVectSrv;
if V=Nil then
ShowMessage ('ɋɟɪɜɟɪ ɧɟ ɧɚɣɞɟɧ!');
end;
procedure TMainForm.bRunClick(Sender: TObject);
var
I, J: Integer;
begin
if V <> Nil then
begin
try
// ȼɵɡɵɜɚɟɦ ɦɟɬɨɞ ɢɧɬɟɪɮɟɣɫɚ (ɦɟɧɹɟɬ ɦɟɫɬɚɦɢ ɷɥɟɦɟɧɬɵ)
V.ChangeVect(x,y);
// ȼɵɜɨɞɢɦ ɪɟɡɭɥɶɬɚɬ
lb.Clear;
for i:=0 to VarArrayHighBound(Y,1) do
lb.Items.Add(FloatToStr(Y[i]));
Vm := V as IMatrixSrv; // Ɉɛɪɚɳɚɟɦɫɹ ɤ ɞɪɭɝɨɦɭ ɢɧɬɟɪɮɟɣɫɭ
A := DynArr; // Ɂɚɩɢɫɵɜɚɟɦ ɜ ɜɚɪɢɚɧɬ ɞɢɧɚɦɢɱɟɫɤɢɣ ɦɚɫɫɢɜ
Vm.Trans(A,B); // ȼɵɡɵɜɚɟɦ ɦɟɬɨɞ (ɬɪɚɧɫɩɨɧɢɪɨɜɚɧɢɟ)
// ȼɵɜɨɞɢɦ ɜ ɫɟɬɤɭ
with SG do
for I := 0 to ColCount - 1 do
for J:= 0 to RowCount - 1 do
DynArr[0,1]:=4; DynArr[1,0]:=2; 2.10.2. �������� ������� // ������� � ����� sg.ColCount := 2; type sg.RowCount := 2; TMainForm = class(TForm) with sg do lb: TListBox; for I := 0 to ColCount - 1 do bCreate: TButton; for J:= 0 to RowCount - 1 do bRun: TButton; Cells[J,I] := IntToStr(DynArr[I,J]); sg: TStringGrid; // ������� ���������� ���������� ������ procedure bCreateClick(Sender: TObject); X := VarArrayOf ([1.2, 2.5, 3, 4.8]); procedure bRunClick(Sender: TObject); // ������� � ListBox private lb.Clear; { Private declarations } for i:=0 to VarArrayHighBound(X,1) do public lb.Items.Add(FloatToStr(X[i])); v: IVectSrv; // ��������� ������ vm: IMatrixSrv; V := CreateComObject(Class_VectSrv) as IVectSrv; { Public declarations } if V=Nil then end; ShowMessage ('������ �� ������!'); end; var MainForm: TMainForm; procedure TMainForm.bRunClick(Sender: TObject); var implementation I, J: Integer; begin var X, Y, A , B: olevariant; // ����� ��� �������� � COM ������ if V <> Nil then DynArr : array of array of integer; begin // ������������ ��������� ������ try // �������� ����� ���������� (������ ������� ��������) {$R *.dfm} V.ChangeVect(x,y); procedure TMainForm.bCreateClick(Sender: TObject); // ������� ��������� var lb.Clear; I, J: Integer; for i:=0 to VarArrayHighBound(Y,1) do begin lb.Items.Add(FloatToStr(Y[i])); // ��� ����������� ����� ��������� ��� �������. Vm := V as IMatrixSrv; // ���������� � ������� ���������� // ���������� ������ ��������� ��� ����������. A := DynArr; // ���������� � ������� ������������ ������ // ������� - ��� ������������ ��������� ������. Vm.Trans(A,B); // �������� ����� (����������������) // ������ ����� 2 �� 2 ���������� ������������� ������� SetLength (DynArr,2,2); // ������� � ����� // .. � ��������� (����� ��� ������� ��-������� - �� �����, ������ ��� with SG do �����) for I := 0 to ColCount - 1 do DynArr[0,0]:=1; for J:= 0 to RowCount - 1 do DynArr[1,1]:=3; 31 32
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »