首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

小疑点,动态建窗体方面

2012-03-01 
小问题,动态建窗体方面一个窗体是打开的beginifnotAssigned(Frmadvinsert)thenFrmadvinsert:TFrmadvinser

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

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;

热点排行