方法3 來自TApplication的方法
不用我多廢話,大家都知道TApplication在BCB中的重要性。在BCB的幫助中指出:TApplication、TScreen和TForm構成了所有BCB風格的Win32 GUI程序的脊梁,他們控制著您程序的行為。TApplication類提供的屬性和方法封裝了標准Windows程序的行為。TApplication表現了在Windows操作中創建、運行、支持和銷毀應用程序的基本原理。因此,TApplication大大簡化了開發者和Windows環境之間的接口。這正是BCB的RAD特性。
TApplication封裝的標准Windows行為大致包括如下幾部分:
1> Windows 消息處理
2> 上下文關聯的在線幫助
3> 菜單的快捷鍵和鍵盤事件處理
4> 異常處理
5> 管理由操作系統定義的程序基礎部分,如:MainWindow 主窗口、WindowClass 窗口類等。
一般情況下,BCB會為每個程序自動生成一個TApplication類的實例。這部分源碼可以在yourproject.cpp文件中見到(這裡假定您的工程名稱就叫yourproject.bpr)。
當然TApplication是不可見的,他總是在您的Form背後默默的控制著您的程序的行為。但也不是找不到蛛絲馬跡。如果您新建一個程序(New Application),然後不作任何改動,編譯運行的話,你會發現程序窗體的Caption是Form1,但在Windows的狀態條上的Caption確寫著project1的字樣。這就是TApplication存在的證據。當然,這只是一種臆測,實戰的方法應該打開BCB附帶的WinSight來查看系統的進程。您可以清楚的看到TApplication類的存在,他的大小是0(隱藏的嘛),然後才是TForm1類。
好了,既然TApplication封裝了消息處理的內容。我們就研究一下TApplication的實際動作吧。實際上消息到達BCB程序時,最先得到它們的就是TApplication對象。經由TApplication之後,才傳遞給Form的。以前的方法都是重載TForm的方法,顯然要比本文所提到的方法要晚一些收到消息。對您來說,是不是希望在第一時間收到消息並處理它們呢?