4
我的应用程序有一个主窗体,我在该窗体上有一个按钮来关闭/退出应用程序。目前,它的写有到Windows调用关闭句柄:TForm.Close和通过窗体句柄关闭有什么区别?
SendMessage(Handle, WM_CLOSE, 0, 0);
但我不知道什么是在使用的危害:
formName.Close;
什么是这里的正确用法?是否有任何理由使用SendMessage?
我的应用程序有一个主窗体,我在该窗体上有一个按钮来关闭/退出应用程序。目前,它的写有到Windows调用关闭句柄:TForm.Close和通过窗体句柄关闭有什么区别?
SendMessage(Handle, WM_CLOSE, 0, 0);
但我不知道什么是在使用的危害:
formName.Close;
什么是这里的正确用法?是否有任何理由使用SendMessage?
他们做的事情完全一样。事实上,在Forms.pas
你找到
procedure WMClose(var Message: TWMClose); message WM_CLOSE;
...
implementation
...
procedure TCustomForm.WMClose(var Message: TWMClose);
begin
Close;
end;
显示该WM_CLOSE
消息只是转换为Self.Close
。
一般而言,如果可以的话,应该使用Close
,因为这更适合Delphi-ish和更短。
“是否有任何理由使用SendMessage?” No. – 2013-02-12 16:19:15
侧面问题/评论:如果应用程序最初是用Delphi 7或之前的版本编写的话,这会有什么不同吗? – Aaron 2013-02-12 16:35:04
不,“Close”也是在Delphi 1中做到这一点的方法。 – 2013-02-12 16:35:39