delphi 全局变量在其它单元中引用时无值!!?

如题,我在unit1中implement之前定义了一个全局变量ss:string,并在unit1的函数中给ss赋值了!在unit2中正确的位置用了usesunit1,可是... 如题,我在unit1中implement之前定义了一个全局变量ss:string,并在unit1的函数中给ss赋值了!
在unit2中正确的位置用了uses unit1,可是unit2下面的函数用ss时,发现ss为空,放个edit,想把ss的数值显示出来为空!!
可是如果我在unit1中声明ss全局变量时同时给它赋初始值,在unit2中引用时得到的是ss的初始值。所以认为unit1下的函数对ss赋值不成功,可是我都正确赋值了,怎么还不行啊!!
拿到还有哪些要注意的!求救啊!大神!
这是u1
unit Unit1;
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;
ss:string;
implementation
uses unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ss:='abc';
form2.ShowModal;
end;
end.
------------------------------------------------------------------
这是unit2
unit Unit2;
interface
uses
这里的和unit1相同,字数限制
implementation
uses unit1;
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);
begin
edit1.Text :=unit1.ss;
end;
end.
展开
 我来答
forestry98
2011-03-11 · TA获得超过2442个赞
知道小有建树答主
回答量:1351
采纳率:33%
帮助的人:562万
展开全部
估计是引用了不同的实例,所以不同实例间的 ss 的值不同。
追问
能详细点吗??
追答
edit1.Text :=unit1.ss; 
放在 OnShow 事件里面
当Form2 的 OnCreate 事件实在程序启动的时候就引发了,那时 Button1Click 还没有执行
mit1208
2011-03-11 · TA获得超过2347个赞
知道大有可为答主
回答量:2743
采纳率:0%
帮助的人:1865万
展开全部
Unit2里将
edit1.Text :=unit1.ss;
这里改为
Edit1.Text:=Form1.ss;

还有关联的时候
在unit1的interface处uses unit2;
在unit2的implementation处加入ues unit1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式