变量使用问题?(50分)

  • 主题发起人 主题发起人 linzi0
  • 开始时间 开始时间
L

linzi0

Unregistered / Unconfirmed
GUEST, unregistred user!
我在unit1的interface部分定义如下:
var
operater: integer;
在unit2的implementation定义如下:
uses unit1
但在实际使用中,在form1中operater的值输入为1,在form1中也确实其值表现为1,但在
form2.show后,在form2中operater显示的值为0,不知是和缘故?
 
使用form1的全局变量应该是form1。operater;
不是operater
 
unit1改为:
var
Form1: TForm1;
OPERATER:INTEGER;
 
你的form2是動態創建還是開始就創建的?
 
zhihuali:我就是那样定义的呀?
form2是设计时创建的。
 
要设为全局变量:)
 
我试过了,没有你说的问题:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
k:integer;

implementation

uses
unit2;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
k:=23;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
form2:=tform2.Create(application);
form2.show;
end;

end.
--------------------------------------------
unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm2 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;

implementation

uses
unit1;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
edit1.Text:=inttostr(unit1.k);
end;

end.
 
你的form2是不是设计时产生的,我的是在设计时创建的,我的程序中没有那句
form2:=tform2.Create(application);
不知是不是这原因。
 
zhihuali,我加了那句
form2:=tform2.Create(application);
后可以了,可以告诉我是什么原因吗?谢谢
 
没有下面这句也行,你试试。
form2:=tform2.Create(application);
 
是不是D6?
我试过
要加 Form1.operate 就搞定了
 
多人接受答案了。
 
后退
顶部