讨论一下MDI子窗口关闭的几种语句..
关闭MDI子窗口一般都是这样子
在onclose事件中添加如下语句:
action:=CaFree;
但我这两天查看相关的帖子时候,都有人在后面加上
frmchild:=nil;
这个要不要加么?Cafree是不是已经释放完了?
又如,自己在MDI子窗口上添加一个名为“退出”的Button,在其click事件中,代码如下:
frmchild1.close;
frmchild1:=nil;
这样写完全释放了么?可以不要frmchild1:=nil吗?
又或者
frmchild1.free;
frmchild1.nil;
行么?
另外,自行写 关闭 代码时候,MDI子窗体的FormDestroy你们写不写?
准确安全的方法是怎么样子的,各位一般是怎么处理的。。
问题点数:10、回复次数:4Top
1 楼magicluo()回复于 2006-05-03 02:21:36 得分 0
不好意思,最后行应该是 frmchild1:=nil;Top
2 楼quicksand201(流沙)回复于 2006-05-03 12:03:28 得分 0
最好用FreeAndNil(frmchild1);Top
3 楼newfang(传说中的MIC)回复于 2006-05-03 16:27:37 得分 10
加上frmchild1.nil,就可以用if frmchild1 = nil then 来判断窗体是否打开~
如果已经打开,就不用再重复!
如果不加,也可以用MDIChildCount和MDIChildren[i].Name来做判断,不过相对比较麻烦,
所以推荐用楼上的方法!Top
4 楼zxj971140(阿力)回复于 2006-05-03 16:36:17 得分 0
if assigned(frmchild1) then
begin
frmchild1.BringToFront;//当已经打开时,将当前窗口显示到最前面
exit;
end;
frmchild1:=Tfrmchild1.create(application);
frmchild1.show
关闭
Action:=caFree;
frmchild1:=nil;Top




