一个窗体是打开的begin
if not Assigned(Frmadvinsert) then
Frmadvinsert := TFrmadvinsert.Create(Application);
try
frmadvinsert.opemode:='insert';
Frmadvinsert .Caption :='广告信息-添加';
Frmadvinsert.Show ;
finally
Frmadvinsert.free;
end;
end;
可是为什么非模态打开一闪就找不到了呀,再点打开就出错,另外什么时候用非模态?我怎么感觉非模态很不好用呀?
if not Assigned(Frmadvinsert) then
Frmadvinsert := TFrmadvinsert.Create(Application);
try
frmadvinsert.opemode:='insert';
Frmadvinsert .Caption :='广告信息-添加';
Frmadvinsert.Show ;
finally
Frmadvinsert.free;
end;
end;
可是为什么非模态打开一闪就找不到了呀,再点打开就出错,另外什么时候用非模态?我怎么感觉非模态很不好用呀?
解决方案 »
- SaveDialog当前有文件夹与要保存的文件同名,如何不打开这个文件夹?
- VC中的指针参数在delhpi中该如何写?
- 请教,如何定位ADODataSet中的记录?
- 光棍节,散分.愿所有光棍们明年这个时候都不再是光棍.
- 如何得到EXCEL 的行数?
- 如何判断一封邮件的CHARSET,注意:邮件的源代码中没有CHARSET信息
- 我怎么才能在Delphi里查看Excel文件,并且把它放在fsMDIChild的form上
- 有没有人做过数据库的动态报表?
- 出錯信息﹕Counldn't perform the edit because another user changed the record
- 怎样在delphi中做onmouseover事件??
- 这么简单的问题,谁解决了我直接给现金!!
- 怪了,取拼音声母函数
所以窗体释放了解决方法:
去掉 frmadvinsert.free在frmadvinsert窗体的OnClose事件里写:
Action:= caFree;
finally后的Frmadvinsert.free;是一定执行的
如果是Frmadvinsert.ShowMoadl ; 那么等frmadvinsert.close 后再来执行finally后的Frmadvinsert.free;
楼上 几位都说了!~~
同时要把Framavinsert:=nil; 要不然你在Assigned(Frmadvinsert)一直为True,因为第一次Create之后Framavinsert就不为Nil了,Free之后也一样.除非赋值为nil
但是另外一个 MDIChild ,而不是 MDIForm,否则的话,没有了 client 你的 MDI 打开就看不见了。