读书人

小疑点,动态建窗体方面

发布时间: 2012-03-01 10:25:46 作者: rapoo

小问题,动态建窗体方面
一个窗体是打开的

begin
if not Assigned(Frmadvinsert) then
Frmadvinsert := TFrmadvinsert.Create(Application);
try
frmadvinsert.opemode:= 'insert ';
Frmadvinsert .Caption := '广告信息-添加 ';
Frmadvinsert.Show ;
finally
Frmadvinsert.free;
end;
end;
可是为什么非模态打开一闪就找不到了呀,再点打开就出错,

另外什么时候用非模态?我怎么感觉非模态很不好用呀?


[解决办法]
以非模态显示窗口不能立即Free,如果每次都要动态建立,可响应OnClose事件,将Action设置为caFree就释放了,另外,不能Assigned来判断窗口是否存在,因为Free后,Frmadvinsert并不是nil。
[解决办法]
你可能没看懂try/finally.
finally后的Frmadvinsert.free;是一定执行的
如果是Frmadvinsert.ShowMoadl ; 那么等frmadvinsert.close 后再来执行finally后的Frmadvinsert.free;

读书人网 >.NET

热点推荐