2013-02-12 98 views
4

我的应用程序有一个主窗体,我在该窗体上有一个按钮来关闭/退出应用程序。目前,它的写有到Windows调用关闭句柄:TForm.Close和通过窗体句柄关闭有什么区别?

SendMessage(Handle, WM_CLOSE, 0, 0); 

但我不知道什么是在使用的危害:

formName.Close; 

什么是这里的正确用法?是否有任何理由使用SendMessage?

+2

“是否有任何理由使用SendMessage?” No. – 2013-02-12 16:19:15

+0

侧面问题/评论:如果应用程序最初是用Delphi 7或之前的版本编写的话,这会有什么不同吗? – Aaron 2013-02-12 16:35:04

+0

不,“Close”也是在Delphi 1中做到这一点的方法。 – 2013-02-12 16:35:39

回答

9

他们做的事情完全一样。事实上,在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和更短。

相关问题