dll中的子窗体如何调用主程序大量的公用变量? ( 积分: 50 )

  • 主题发起人 主题发起人 wyb_506
  • 开始时间 开始时间
W

wyb_506

Unregistered / Unconfirmed
GUEST, unregistred user!
各功能模块都封装到dll中了,但是有个问题,我的主窗口中有大量的不同类型的公用变量,怎么能够让dll的窗体方便的读取到这些变量呢?
 
需要调用大量外户公共变量,这样封装又有什么意义。
 
将公用变量做成一个记录,将指针传到Dll中
 
在主窗体放那么多公用变量干吗.?&nbsp;不是自找苦吃吗.<br><br>把变量归纳起来,&nbsp;封装到对象,&nbsp;以接口传递参数的方式共享,&nbsp;或者用共用接口单元也可以,.
 
你在dll中定义这样的函数:Procedure&nbsp;ExChanageParams(var&nbsp;xx,bb,.......);<br>{-----------------------下面是我的代码----------------------------------------}<br>&nbsp;procedure&nbsp;ExChanageParams(var&nbsp;xxx,bbb&nbsp;:&nbsp;Integer);<br>&nbsp;begin<br>&nbsp;&nbsp;&nbsp;ShowMessage(IntToStr(xxx)+','+inttostr(bbb));<br>&nbsp;&nbsp;&nbsp;xxx&nbsp;:=&nbsp;20;<br>&nbsp;&nbsp;&nbsp;bbb&nbsp;:=&nbsp;21;<br>&nbsp;end;<br><br>&nbsp;exports<br>&nbsp;&nbsp;ExChanageParams;<br>{-----------------------------------------------------}<br>var<br>a,&nbsp;b&nbsp;:&nbsp;integer;<br>&nbsp;procedure&nbsp;ExChanageParams(var&nbsp;xxx,bbb&nbsp;:&nbsp;Integer);&nbsp;&nbsp;external&nbsp;'project2.dll';<br>implementation<br>{$R&nbsp;*.dfm}<br>procedure&nbsp;TForm1.btn1Click(Sender:&nbsp;TObject);<br>begin<br>&nbsp;&nbsp;a&nbsp;:=&nbsp;10;<br>&nbsp;&nbsp;b&nbsp;:=&nbsp;11;<br>&nbsp;&nbsp;ExChanageParams(a,&nbsp;b);<br>end;<br>procedure&nbsp;TForm1.btn2Click(Sender:&nbsp;TObject);<br>begin<br>&nbsp;&nbsp;ShowMessage(IntToStr(a)&nbsp;+','+inttostr(b));<br>end;
 
谢谢各位,但是好像都没有达到目的吧<br>duhai_lee答案比较接近<br>谢谢hfqxfx的答案<br>白河愁你没看明白我的意思<br>谢谢Dstorm的代码,这样可以解决比较少公用变量的问题,但是多了就复杂了
 

Similar threads

回复
0
查看
978
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部