窗体融合后的问题(50分)

L

lyplay2

Unregistered / Unconfirmed
GUEST, unregistred user!
我用如下代码将FORM2融合在FORM1的PANEL1中
Form2.ManualDock(Panel1);
Form2.show;(不能用showmodal?,一用便出错)

现在的问题是如果我想FORM3。show(showmodal)时,form2.close;
一个时倒好办如果SHOW了无数个融合的窗体,
难道还要确定那些窗体SHOW了再一一CLOSE它

那位老大能出个主意,当FOMR3打开时,关闭除Form1和自身之外的所有已创建窗体?
或者变相出现融合窗体showmodal效果
谢谢
 
你可以用一个循环将所有窗体的属性测试出来以后
判断form.visible=true时再判断它是当前窗体
就将其它窗体关闭
 
维护一个全局变量TForm activeForm
1 在form1构造时,让activeForm:=nil;
2 然后在form2的show中
if activeForm then
activeForm.close;
activeForm:=form2;
3 在form2的close 中
activeForm:=nil;//清空激活的窗体
4 form3 中如法炮制
这样可保证只有一个窗体激活,form1除外

 
顶部