请问:在窗体事件中onClose,onCloseQuery,onDestroy有何区别??(20分)

  • 主题发起人 主题发起人 Sword_Sharp
  • 开始时间 开始时间
S

Sword_Sharp

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:在窗体事件中onClose,onCloseQuery,onDestroy有何区别??
 
onclose就是关闭时触发的
onclosequery是试图关闭时
ondestroy是释放时,关闭可能是不可见了,不一定会释放
 
对不起,可以更详细点吗?
是不是onClose和onCloseQuery在关闭窗口时释放资源?
onClose和onCloseQuery事件发生时是否发送WM_ONDESTROY?
 
在 OnCloseQuery 中
if MessageBox(Handle,'你确定要关闭该窗体吗?','提示',MB_YESNO+MB_ICONINFORMATION)=IDYES then
CanClose:=True
else
CanClose:=False;

在 OnClose 中
MessageBox(Handle,'正在关闭窗体!','提示','MB_OK+MB_ICONWARNING);

在 OnDestroy 中
Application.MessageBox('释放窗体','提示');

然后对窗体进行 Show;Hide/Close;Free;
看看结果,这样明白了吧!
 
只想给你一个有用的提醒,如果你想在程序结束时保存信息,比如将信息保存在注册表中,
那么最安全的办法是将代码放在onDestroy中,因为即使你没有关闭你的程序就关机或重启
了也没事,一样会保存,而放在onClose,onCloseQuery就不行了
 
To HD_Copy:
是这样的吗?如果突然断电是不是也能保存那?
 
to lbsong:
我倒!你这不是抬杠吗?!哈哈哈哈,没关系,开个玩笑[:D][:D][:D]
 
不是说了吗
onclose和onclosequery不一定要释放资源
 
to HD_Copy:
[:)][:)][:)],我真的以为可以做到的,见笑了
 
多人接受答案了。
 

Similar threads

回复
0
查看
836
不得闲
S
回复
0
查看
699
SUNSTONE的Delphi笔记
S
S
回复
0
查看
787
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部