delphi BPL多窗体(200)

  • 主题发起人 主题发起人 sxlangzi
  • 开始时间 开始时间
S

sxlangzi

Unregistered / Unconfirmed
GUEST, unregistred user!
我的主程序调用一个bpl,bpl中有两个FORM(A和B),A调用B,且B.SHOW,B调用A,也可以显示届面操做都正常,都采用动态加载包的方法,问题在B中有如下代码: v_str := A.pb_id(其中v_str是窗体B中的一个过程变量,pb_id是窗体A中的一个变量);程序报错,提示内存地址违例
 
A 是否存在?
 
在条用a中数据的时候,请问a是否create了吗?我觉得你可以加个公用单元,把变量放在公用单元中,a和b都可以访问。不至于互调啊。
 
v_str := A.pb_id----------更改为if A=nil then showmessage('A没赋值');另外查找一下,有没有地方释放A的时候,没有把变量A设置为NIL。
 
A先存在的。
 
建立共用单位,这个要怎样做。给个试例
 
加一个unit~ 然后把公共的数据放进去~~ uses 该unit就可以都调用~~
 
意思就是把pb_id作为一个全局变量,定义在第三个单元中,界面a和界面b同时引用该单元,明白了吧?可以说,错误虽然是在这里发生,但错误的根底不在这里,应该是其它地方。
 
问题是,pb_id我可以定义为公用变量,但如果是这样的,当B窗体的双机之后,B关闭,A上的一EDT控件感知pb_id,这个怎样弄呀。
 
znxia我先给你100分
 
还想知道别的方法。更好的解决方案
 
duxing BPL当引用主程序单元时候,先这种是可以做的,但当引用包中的单元时,不行,不信你可以试,
 
接受答案了.
 
后退
顶部