BPL 如何调用主程序里面的全局变量(100)

文生

Unregistered / Unconfirmed
GUEST, unregistred user!
BPL 如何调用主程序里面的全局变量?有一个主程序EXE,用户登陆后,将帐号保存一个公共变量,当一个bpl子窗体打开后,如果在bpl上显示这个帐号?
 
M

mosac

Unregistered / Unconfirmed
GUEST, unregistred user!
在BPL中增加一个类,调用关系:主程序-》类-》子窗体,帐号作为类方法的参数即可
 

文生

Unregistered / Unconfirmed
GUEST, unregistred user!
通过接口,主程序如何给公共包里面的 公共变量符值呢?
 
M

mosac

Unregistered / Unconfirmed
GUEST, unregistred user!
增加一个类有点麻烦,直接增加一个调用函数也可以,过程如下:假设帐号变量为 ZH ,子窗口类名称为 tform11.在BPL中添加一个Unit2.Unit中添加一个过程:procedure ShowForm1(ZH:string);begin from1:=tform1.create(application); form1.lable1.caption:=ZH; //这就将帐号传给了form1 form1.showmodal; form1.free;end;3.将该Unit的名称添加到主程序的uses中4.在主程序中调用即可:ShowForm1('abc');
 

文生

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢 mosac,这个方法我昨天弄出来了,我现在想能不能在公共函数包中伟递呢?在公共函数包里有一个全局变量,将主程序中的 一个值 给公共函数包的全局变量符值,这样其它包只引用这个公共函数包的全局变量的值就可以了,不知道这样能不能实现?补充一下:共函数包 里面有个TDataModal窗体。
 
M

mosac

Unregistered / Unconfirmed
GUEST, unregistred user!
一般来说,全局变量不要放到包里,一个包应该是个相对独立的功能集合,全局变量放在主程序一个Unit中,但一个包不要去引用这个Unit,需要用到全局变量时通过函数参数传递即可。当然,Delphi的包有其特殊性,确实可以放置全局变量,但不建议这样做个人观点,仅供参考
 

文生

Unregistered / Unconfirmed
GUEST, unregistred user!
好的,谢谢了
 
顶部