我在DELPHI中新建了一个工程,1 工程中有两个窗体,分别是form1(unit1),form2(unit2) ,2 我在unit1中的public下定义了一个公共变量S,然后form1上有一个按钮button13 form1.button1一按下去就弹出form2,并且在form2的OnActivate的事件中,弹出一个messagedlg,显示出公共变量S的值(程序目的是想试试公共变量的传递情况).但是,程序出了错,代码如下:unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
S:String; //这里声明了一个公共变量s
{ Public declarations }
end;var
Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show
end;procedure TForm1.FormCreate(Sender: TObject);
beginend;end.
//--------------------------------------------------------------------------------------unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,unit1; //这里已经把unit1加入了type
TForm2 = class(TForm)
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation{$R *.dfm}procedure TForm2.FormActivate(Sender: TObject);
begin
messagedlg(unit1.s,mtinformation,[mbOK],0); //这里想把s的值显示出来,就是这句出错
end;procedure TForm2.FormCreate(Sender: TObject);
beginend;end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
S:String; //这里声明了一个公共变量s
{ Public declarations }
end;var
Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show
end;procedure TForm1.FormCreate(Sender: TObject);
beginend;end.
//--------------------------------------------------------------------------------------unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,unit1; //这里已经把unit1加入了type
TForm2 = class(TForm)
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation{$R *.dfm}procedure TForm2.FormActivate(Sender: TObject);
begin
messagedlg(unit1.s,mtinformation,[mbOK],0); //这里想把s的值显示出来,就是这句出错
end;procedure TForm2.FormCreate(Sender: TObject);
beginend;end.
messagedlg(Form1.S, .....); //Will be OK