form间的相互调用!
如果form1要调用form2的一些变量或者控件,而form2也要使用form1中的一些变量或者控件!如果在unit1中的user中加入unit2,且在unit2中的user中加入unit1,就会出现循环调用错误,不知道这个问题改怎么解决! 问题点数:30、回复次数:12Top
1 楼netlib(河外孤星)回复于 2002-07-06 16:01:25 得分 5
相互调用需要在
implementation下面引用,就可以了。Top
2 楼xyxx(雪域雄师)回复于 2002-07-06 16:03:20 得分 0
就象全局变量一样!Top
3 楼pazee(耙子)(今年过年不收礼,收礼只收尿不湿)回复于 2002-07-06 16:03:49 得分 5
这个问题的delphi解决得很好。
一个在interface的uses 里面写上对方
一个在implementation的user的里面写上对方,
编译系统就会区分开了。
这东西在使用mdi窗口的时候非常普遍。Top
4 楼YANGYUGW(小杨)回复于 2002-07-06 16:16:10 得分 5
不要在user里面加入窗体的引用
在你的任意一个按钮下加入form1.show,delphi会给你弹出一个窗口,你按yes就可以引用这个窗体了Top
5 楼flamefiredelphi(flamefire)回复于 2002-07-06 16:17:21 得分 0
哦,我想问一下在interface下的users和implementation下的user有什么区别阿?Top
6 楼johnsonrao(johnson)回复于 2002-07-06 16:25:11 得分 10
简单的说, interface下的是系统单元
implementation是你自己的单元Top
7 楼vigrous_chen(风)回复于 2002-07-06 16:53:41 得分 0
Delphi建议一个在Interface下引用
一个在Implementation下引用Top
8 楼flamefiredelphi(flamefire)回复于 2002-07-06 17:36:11 得分 0
有人讲得更清楚一些吗,另加分!Top
9 楼m_leaner(和日本鬼子势不两立)回复于 2002-07-06 18:28:18 得分 5
unit1
interface
uses windows,.....
type Tfrom1=Tform;
public
procedure onButton1Click(sender :object);
.....
private
.....
end;
implementation
uses unit2;
${*.res}
procedure onButton1Click(sender :object);
begin
form2:=Tform2.create(nil);
form2.edit1.text :='this is form2's edit';
form2.showmodal;
end;
////////////////
unit2
interface
uses windows,.....
type Tfrom2=Tform;
public
procedure onButton1Click(sender :object);
edit1:Tedit;
.....
private
.....
end;
implementation
uses unit1;
${*.res}
procedure onButton1Click(sender :object);
begin
form1.edit1.text :='this is form1's edit';
end;Top
10 楼m_leaner(和日本鬼子势不两立)回复于 2002-07-06 18:30:55 得分 0
有一些小细节写错了。对付着看吧Top
11 楼byc6352(雪原)回复于 2002-07-06 18:46:54 得分 0
implementation下引用Top




