在一个主窗体下有二个窗体,其中一个窗体关闭时另一个也关闭请问如何实现(20分)

  • 主题发起人 主题发起人 K
  • 开始时间 开始时间
K

K

Unregistered / Unconfirmed
GUEST, unregistred user!
我有3个FORM分别是:Form1(主窗体) 、Form2、 Form3
我在Form1上放了一个Button1,当单击Button1时Form2、
Form3都显示出来,当关闭Form2时Form3也随着关闭,Form3
可单独关闭.我己在Form1的uses中加上Form2,Form3单元,
Form2和Form3之间也各自加上调用对方的单元。可我怎么也
不能如愿(关闭Form2时Form3也随着关闭)。请各位大师教我。
谢谢。
 
Form2.onclose中
Form3.close;
Form3.onclose中
Form2.close;

 
procedure TForm2.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if FindWindow(nil,'Form3')<>0 then
Form3.Close;
//Form3没被关闭时就关掉它
end;

Form3由于要单独关闭,在OnClose事件中就不能把Form2关掉.
 
在form2的onclose中 form3.close;
不能同时在form3的onclose中 form2.close;
否则会堆栈溢出的.
 
用close的方法肯定不能关闭MDI窗口
试试:
form3的onclose中:
action:=cafree;
form2的onclose中:
form2.action.free;
action:=cafree;

 
他好像说的不是MDI吧.
MDI是有些不同
 
同时在FORM2中让FORM3关闭,在FORM3中让FORM2关闭是不可能的
只能在FORM1中控制论
e.g.
form1.button1.onclick中
form2.close;form3.close;
form1.button2.onclick中
form2.close;form3.close;
 
接受答案了.
 
我在程序中有问题:
var
form2:TForm2;
begin
form2:=tform2.create(self);
form2.show;
end;

将var 部分去掉就可以了。
 
后退
顶部