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