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

unit中调用form,怎么在unit中判断form是否被关闭

2012-02-26 
unit中调用form,如何在unit中判断form是否被关闭?procedureTInfomitionShow.MapMouseDown(Sender:TObject

unit中调用form,如何在unit中判断form是否被关闭?
procedure   TInfomitionShow.MapMouseDown(Sender:   TObject;   Button:   TMouseButton;Shift:   TShiftState;   X,   Y:   Integer);
begin
        if   not   Assigned(frmMapInfoShow)   then
                frmMapInfoShow:=TfrmMapInfoShow.Create(nil);
        frmMapInfoShow.InfoList:=InfoList;
        frmMapInfoShow.EditMemo;
        frmMapInfoShow.Show;
end;
另一种写法:
procedure   TInfomitionShow.MapMouseDown(Sender:   TObject;   Button:   TMouseButton;Shift:   TShiftState;   X,   Y:   Integer);
begin
        if   frmMapInfoShow=nil   then
                frmMapInfoShow:=TfrmMapInfoShow.Create(nil);
        frmMapInfoShow.InfoList:=InfoList;
        frmMapInfoShow.EditMemo;
        frmMapInfoShow.Show;
end;

两种办法都无法判断弹出的非模态窗口是否已经手动关闭.请问,如何在unit中判断非模态窗口已经关闭?


[解决办法]
或者给窗体类加个属性,show的时候为0 ,onclose里面为1,根据属性来(show窗体前看属性)
[解决办法]
那你Free掉的同时有没有 = nil啊
你用FreeAndNil
这个时候你就可以用not Assigned()判断了!
[解决办法]
用api吧,findwindow或者findwindowex,看能否找到该窗体
[解决办法]
你在close事件里释放Action := cafree;
可以用not Assigned()判断了!
[解决办法]
可以使用FindWindow函数来查找窗口
也可以使用Screen.FormCount来进行遍历窗体,看看是否可以找到你的那个窗体

热点排行