![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
peremenniy [D6, WinXP]
roma © (2004-09-15 10:53:00)Zdravstvuyte.
Est dva formi (Form1, Form2) i est v form1 massivi(peremennie) s :String; d, e :Integer; Teper ya prisvaivayu na s, d, e nujnie znacenii a koqda perexaju na form2 oni teryaetsya.
Kak mojno ispolzovat s, d, e sznaceniyami kotorie polucili v form1 ctobi v perexode form2 ix mojno ispolzovat
pisu kot pojalyusta esli mojno pomoqite
unit f1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses f2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
e, d : Integer;
s : String;
begin
d:=3;
e:= 'Helloword';
Form1.Hide;
Form2.Show;
end;
end.
-----------
unit f2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses f1;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
Form2.Hide;
Form1.Show;
end;
procedure TForm2.FormActivate(Sender: TObject);
begin
Edit1.text:=s;
end;
end.
ZARANIE BLAQADARYU
roma (2004-09-15 12:18:00) [1]PVOzerski ya ocen blaqodaren Vam. Vse policilos. I esli mojno
skajite pojalyusta kak mojno obnulit vse peremennie.(to est vozvratit k nacalnomu znaceniyu).
PVOzerski (2004-09-15 11:52:00) [2]unit f1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
e, d : Integer;
s : String;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses f2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
d:=3;
s:= 'Helloword';
Form1.Hide;
Form2.Show;
end;
end.
-----------
unit f2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses f1;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
Form2.Hide;
Form1.Show;
end;
procedure TForm2.FormActivate(Sender: TObject);
begin
Edit1.text:=Form1.s;
end;
end.
roma (2004-09-15 11:26:00) [3]PVOzerski © (15.09.04 11:01) [1]
Vi vse pravilno obyasnili.
Ucitivayte cto ya novicok po etomu prosu esli mojno v moem primere eto ispravte budu bloqadaren.
Я не очень понял, что такое переход с Form1 на Form2.To est ya xotel virazit eto:
procedure TForm1.Button1Click(Sender: TObject);
var
e, d : Integer;
s : String;
begin
d:=3;
e:= 'Helloword';
Form1.Hide;
Form2.Show;
end;
PVOzerski (2004-09-15 11:01:00) [4]Я не очень понял, что такое переход с Form1 на Form2. Но вижу очень грубую ошибку. У тебя все эти переменные (кстати, это не принято называть массивами, массив - это то, что по-английски называется array) объявлены как локальные в процедуре TForm1.Button1Click. При таком объявлении они: а) видны только в пределах этой процедуры); б) не сохраняют значений после выхода из нее. Здесь возможно как минимум 2 очевидных работоспособных решения. 1) объявить их как глобальные в разделе interface любого из модулей и сделать ссылку в разделе uses на этот модуль во 2-м модуле. 2) Объявить эти переменными полями или свойствами одной из форм в секции public. Опять же, сделать ссылку в разделе uses на этот модуль во 2-м модуле.