TApplication是應用程序使用的類型。
類關系 TObject→TPersistent→TComponent
TApplication 是一外封裝Windows 應用程序的類。在Y職TApplication中引入的方法和屬性,反映了 Windows 操作系統建立起來的如創建、運行、確認以及刪除一個應用程序的基本情況。因此,當編寫一個 Windows 應用程序時,TApplication簡化了用戶和 Windows 環境之間的接口。為此目的, TApplication封裝了下列行為:
·Windows信息處理
·上下文相關的在線幫助
·菜單加速鍵和鍵處理
·異常情況處理
·為應用程序管理在Windows 操作系統中進行定義的基本部分,例如MainWindow、WindowClass 等。
每個C++Builder應用程序象聲明應用程序實例一樣,自動聲明Application變量。如果C++Builder應用程序不是Web服務器應用程序,該變量將屬於TApplication類型。因此,Tapplication 對象既不可能在元件選項板組件中出現,窗體設計者也不可能在進行可視化操作時使用。TApplication 對象沒有公開的屬性。然而,TApplication對象的一些公用特性可以在窗體設計階段進行設置或修改;也可以在Priject | Options對話框中的Application頁中進行設置或修改。
屬性列表
Active 應用程序是否是活動的
AllowTesting 表示IDE的信息
DialogHandle 在應用程序中使用非Delphi對話框提供機制
ExeName 可執行應用程序的文件名稱
Handle 提供對窗口句柄的訪問
HelpFile 用於顯示幫助的文件名稱
Hint 顯示在幫助提示框中的文本字符串
Hintcolor 確定提示框的顏色
HintHidePause 在隱匿幫助提示之前應等待的時間間隔
HintPause 在控件的幫助提示顯示之前應經過的時間間隔
HintShortPause 在再次彈出提示前應等待的停頓時間
Icon 確定在Windows任務欄上代表應用程序的圖標
MainForm 識別應用程序中的主窗口
ShowHint 確定幫助提示對整個應用程序是激活的還是失活的
ShowMainForm 確定應用程序啟動時是否顯示其主窗體
Terminated 報告應用程序是否已經收到WM--QUIT信息
Title 出現在應用程序圖標下的文本
updateFormatSettings 是否自動更新格式化設定
UpdateMetricSettings 是否更新對於提示窗口字體和圖標標題字體的設定
方法列表
~TApplication 用於刪除應用程序實例及其與之相關的內存
BringToFront 將桌面最後一個激活的窗口作為最前端窗口
CancelHint 為控件取消提示的顯示
ControlDestroyed 通知應用程序一控件被刪除
CreateForm 創建一個新窗體
CreateHandle 為應用程序生成一主窗口
HandleException 為應用程序提供異常的默認處理方法
HandleMesage 中斷應用程序以處理Windows消息隊列中消息
HelpCommand 提供對API中的任何幫助命令的快速存取
HelpContext 為應用程序顯示幫助文件
HelpJump 產生一個OnHelp事件
HideHint 隱藏當前的提示
HintMouseMessage 調整提示窗口的顯示
HookMainWindow 使非Delphi對話框能夠接收送到應用程序主窗口的信息
Initialize 為初始化的分系統提供了機會
MessageBox 向用戶顯示一個指定的消息
Minimize 使應用程序縮小到Windows任務欄上
NormalizeAllTopMosts 使最前端的窗體含主窗口的行為象不是最前端窗體一樣
NormalizeTopMosts 使最前端的窗體的行為象不是最前端的窗體一樣
ProcessMessages 中斷應用程序以便Windows能夠響應事件
Restore 恢復一個最小化的應用程序至正常大小
RestoreTopMosts 使faStayOnTop指定的窗體重新恢復到最前端
Run 執行應用程序
ShowException 顯示發生在應用程序中的異常
TApplication 創建一個新的應用程序
Terminate 結束應用程序的執行
UnhookMainWindow 釋放HookMainWindow方法掛鉤的對話過程
事件列表
OnActivate 當應用程序變為活動時該事件發生
OnDeactivate 當應用程序變為非活動時該事件發生
OnFxception 在應用程序中出現未處理異常時該事件發生
OnHelp 當應用程序收到壽命的請求時該事件發生
OnHint 當光標移到幫助提示控件或菜單選項上時該事件發生
ONIdle 當應用程序變為空閒時該事件發生
OnMessage 當應用程序收到Windows消息時該事件發生
OnMninize 當應用程序被最小化時該事件發生
OnRestore 當被最小化的應用程序恢復時該事件發生
OnShowHint 當應用程序顯示提示窗口時該事件發生
屬性
Tpplication::AllowTesting
指定應用程序是否是活動的,是否有焦點。
__property bool Active = { read = FActive, nodefault } ;
Active屬性屬於只讀屬性。當應用程序是活動的,Active 屬性為True ;應用程序是非活動的,ACtive屬性為 False。在構造函數中,Active 屬性被設置為True。如果窗體可應用程序具有焦點時,則應用程序是活動的。當來自另一個不同的應用程序的窗口變成活動的窗口時,原應用程序變成非活動的。關閉應用程序時,在析構函數中 Active屬性被設置為False。
TApplication::AllowTesting
AllowTesting 屬性表示IDE的信息。
__property bool AllowTesting ={ read = TAllowTesting ,write = FAllowTesting , nodefault };
不能使用AllowTesting屬性,它僅供內部使用。
TApplication::DialogHandle
DialogHandle屬性為在Delphi應用程序中使用非Delphi對話框提供了一個機制。
__property HWND DialogHandle = {read = GetDialogHandle,write = SetDialogHandle,nodefault };
當顯示一個用CialogHandle API功能創建的一個非模態對話框時,使用DialogHandle屬性。將DialogHandle屬性設定為非模態對話框的句柄,能允許對話框理解來處自應用程序信息回路的信息。當對話框收到一個激活信息(WMNCACTIVATE)時,將DialogHandle屬性設定為非模態對話框的句柄;當對話框收到下個失去活動的信息時,將DialogHandle屬性設置為0。
TApplication::EXeName
包含包括中文路徑信息的可執行應用程序的文件名稱。
__property System::AnsiString ExeName = {read = GetExeName } ;
ExeName屬性屬於只讀屬性。使用ExeNarme屬性可以獲得應用程序可執行文件的名稱。應用程序的名稱是擴展名為::EXE的工程文件的根名。默認名為PROJECTI::EXE。若想改變ExeName屬性,則用所需要的新根名保存工程文件並重建應用程序。ExeName屬性能夠反映工程文件名的改變。
TApplication::Handle
Handle屬性提供對應用程序主窗體(窗口)的窗口句柄的訪問。
__property HWND Handle={read=FHandle,write=SetHande,nodefault};
調用需要一個父窗口句柄的Windows API函數時,使用Handle屬性。例如,在應用程序中,一個顯示其最高層彈出式窗口的DLL,將需要一個父窗口以顯示其窗口。使用Application::Handle可以使這樣的窗口成為應用程序的一部分,因而它們可與應用程序一起進行最小化、最大化、激活以及失活。
注意:使用VCL窗體寫一個DLL時,指定主EXE的主窗口的窗口句柄作為DLL的Application::Handle屬性。這可使DLL的窗體成為主應用程序的一部分。在一個EXE中不要對Application::Handle賦值。
TApplication::HelpFile
指定應用程序用於顯示幫助的文件名稱。
__property System::AnsiString HelpFile={read=FHelpFile,write=FHelpFile};
對於有一個幫助文件與Windows Help系統一起使用的應用程序,使用HelpFile屬性。Windows顯示由HelpFile屬性指定的文件。或者在運行階段給HelpFile屬性指定一個文件名,或者在設計階段在Project|Options對話框的Application頁中指定一個幫助文件。默認時,HelpFile屬性為一零字符串,且應用程序的Help方法忽略顯示幫助的嘗試。如果HelpFile屬性包含任何字符串,HelpContext方法將其傳遞至Windows Help系統作為使用幫助的文件名。如果已經設置了活動窗體的幫助文件,則將顯示該幫助文件而不是顯示應用程序的幫助文件。
TApplication::Hint
指定顯示在幫助提示框中的文體字符串。
__property System::AnsiString Hint = {read=FHint,wrte=SetHint};
TApplication對象的Hint屬性被賦值為控件的Hint屬性數值或鼠標當前移在其上的菜單選項。Hint屬性還或賦值為一個字符串數值,以告知用戶一些行為、錯誤或其他類型信息。因此,或從兩方面使用Hint屬性:
使用OnHint事件處理程序,可以從控件至另一諸如狀態欄的顯示區域上移動提示。這屬於讀Hint屬性。
當應用程序正在處理一些行為時,顯示應用程序的狀態。這屬於設置Hint屬性。
當發生OnHint事件時,顯示幫助提示。因此,如果TApplication對象的Hint屬性被賦值為狀態欄的標題,狀態欄控件的標題顯示OnHint事件中預期的Hint屬性的當前字符串數值。Hint屬性字符串有兩種形式:短提示和長提示。短提示通常由彈出式工具技巧使用。長提示通常由狀態根據地使用,相互向以“|”字符隔開。從Controls單元中,使用全局函數GetShortHint和GetLongHint,可以從一個提示字符串中取出短提示和長提示。
注意:在應用程序中,將Hint屬性設置為一個告知用戶事件發生的信息時。應當牢記:當鼠標移到一個控件上,默認時,Hint屬性字符串被重新設定為控件的Hint屬性。
TApplication::HintColor
為應用程序的幫助提示,用來確定提示框的顏色。
__property Graphics::TColor HintColor = {read=FHintColor,write=SetHintColor,nodefault};使用HintColor屬性,可以指定提示框的顏色。創建應用程序時,在構造函數中將HintColor屬性設置為clInfoBk默認顏色數值。若要修改HintColor屬性,應在運行階段將其賦值為一個新的TColor數值。
TApplication::HintHidePause
如果鼠標沒有從控件或者菜單選項是移開, HintHidePause屬性指定在隱匿幫助指示之前應等待的時間間隔。
__property int HintHidePause = {read =FHintHidePause ,write =FHintHidePause,nodefault };
使用HintHidePause屬性,可以指定一個以毫秒表示的等待時間,這不同於在構造函數中設置的2 500毫秒或者2::5秒的默認數值。控件或者菜單選項的幫助提示在Hint屬性中指定。默認值是一個預先確定的常量,它要比HintHidePause屬性長數倍。
TApplication::HintPause
當用戶將鼠標光標置於一個控件或者菜單選項時,HintPause 屬性用於指定在控件的幫助提示顯示之前應經過的時間間隔。
__property int HintPause = {read =FHintPause,write =FhintPause,nodefault};
使用HintPause屬性,可以修改在構造函數中設置500毫秒功0::5秒的默認停頓時間。當對HintPause屬性賦值時指定時間間隔以毫秒表示。停頓結束時,顯示在Hint屬性中指定的幫助提示。
TApplication::HintShorPause
如果提示信息已經顯示,HintShortPause屬性指定在再次彈出指示前應等待的停頓時間。
___property int HintShortPause ={read =FHintShortpuse ,write =FJintShortPause ,nodefault };
在一套均有幫助指示的按鈕上快速移動鼠標時,使用HintShortPause屬性可以使減少鼠標的閃爍。用毫秒指定一個數值不同於在構造函數中設置的 50ms的默認數值。
TApplication::Icon
確定在Windows任務欄上哪一個圖標代表應用程序。
__property Graphics::TIcon*Icon ={read=FIcon,write =SetIcon};
使用Icon屬性,可以設定一個特定的圖標來代表應用程序。設置Icon屬性可按下述中的一個進行。
·運行階段,為其設定一個TIcon。
·設計階段,在Project | Options 對話框的Application頁中裝入一個圖標。
當應用程序被最小化時,圖標代表應用程序。在Windows桌面或Windows95的任務欄上也可顯示圖標。
TApplication::MainForm
識別應用程序中的哪一個窗體是主窗口。
__property TForm *MainForm +{read =FMainForm};
使用MainForm屬性,可以指定一個不同於默認時的窗體作為應用程序的主窗口。通過CreateForm方法創建第一個窗體時,MainForm屬性數值即被設置。當創建一個新工程時,Forml自動成為MainForm屬性的數值。若要為MainForm屬性設定一個不同的窗體,在設計階段,使用Project|Options對話框的Forms頁進行設置。由於MaainForm屬性屬於只讀屬性,因此,在運行階段MainForm屬性不能被修改。
主窗體是在應用程序的主體中創建的第一個窗體。主窗體關閉時,應用程序終止。
TApplication::ShowHint
確定幫助提示對整個應用程序是激活的還是失活的。
__property bool ShowHint = {read=FShowHint,write=SetShowHint,nodefault};
使用ShowHint屬性,可以選擇何時顯示幫助提示。如果ShowHint屬性為True,顯示幫助提示;如果ShowHint屬性為False,幫助提示不顯示。ShowHint屬性的默認值為True。幫助提示在Hint屬性中指定。不論單個控件的ShowHint屬性的數值是什麼,將應用程序的ShowHint屬性設置為False,將使所有的幫助提示不能使用。
TApplication::ShowMainForm
ShowMainForm屬性用於確定應用程序啟動時是否顯示其主窗體。
__property bool ShowMainForm ={read=FShowMainForm,write=FShowMainForm,nodefault};
使用ShowMainForm屬性,可以控制應用程序啟動時是否顯示主窗體。在構造函數中,ShowMainForm屬性的默認數值被設置為True。默認時顯示主窗體。MaainForm屬性指定哪一個窗體是主窗體。欲在應用程序啟動時隱藏主窗體,就在調用Application::Run之前,在主工程文件中將ShowMainForm屬性設置為False,同時應確認窗體的Visible屬性也為False。執行OLE自動控制服務器程序,為隱藏服務器程序啟動時的主窗體,ShowMainForm屬性是十分有用的。
TApplicatioon::Terminated
報告應用程序是否已經收到Windows的WM_QUTT信息,然後終止應用程序。
__property bool Terminated = {read=FTerminate,nodefault};
Terminated屬性屬於只讀屬性。調用ProcessMessages方法時才使用Terminated屬性,以便使應用程序在退出後不再處理Windows的信息。當ProcessMessages方法收到一個WM_WUTT信息時,將Terminated屬性設置為True。因為應用程序的主窗口已經關閉。或者因為已經調用了Terminate方法,因此,一個Delphi應用程序經常收到一個WM_QUTT信息。對於使用集中循環的應用程序,將定期地調用Application::ProcessMessages方法並檢查Appication::Terminated屬性,以確定是否退出計算,以便應用程序能終止運行。
TApplication::Title
當應用程序被最小化時,Title 屬性包含了出現在應用程序圖標下的文本。
__property System::AnsiString Title = { read =GetTitle,write =SetTitle };
使用Title屬性,可以修改出現在應用程序圖標下的這個文本字符串的名稱。在運行階段。 Title屬性的默認值取DLL/EXE文件名。在運行階段,Title ntg屬性,或者在Project|Options 對話框的Application頁中輸入 Title屬性的數值。
TApplication::UpdateFormatSettings
當用戶修改了系統配套時,UpdateFormatSettings屬性用於指定是否自動更新格式化設定。
__property bool UpdateFormatSettings ={ read =FUpdateFormatSettings,wrute =FUpdateFormatSettings , nodefault } ;
使用 UpdateFormatSettings屬性以控制格式化設定的自動更新。在構造函數中,UpdateFormatSettings屬性的默認值被設置為True。當應用程序收到一個WM_WININICHANGE信息時,將檢查UpdateFormatSettings屬性。建議使用默認的格式化設定。然而,當在Delphi應用程序中更改格式化設定時,為避免在應用程序運行期間修改設定,應將UpdateFormatSettings屬性設置為False。
TApplication::UpdateMetricSettings
用於指定是否更新對於提示窗口字體和圖標標題字體的設定。
__property bool UpdateMetricSettings ={read=FUPdateMetricSettings,write =FUpdateMetricSettings, nodefault};當系統設定被修改時,使用UpdateMetricSettings屬性,可以指定是否更新桌面上的提示窗口字體和圖標標題字體以反映系統設定。在構造函數中,UpdateMetricSettings屬性的初值被設置為True。
方法
TApplication::~TApplication
用於刪除應用程序實例及與之相關的內存。
__fastcall virtoal~TApplication(void);
不調用~TApplication或delete。使用Application::Terminate可結束一個應用程序。在調用繼承的析構函數之前,~TApplication信號通知應用程序已經被釋放。然後釋放在應用程序啟動時創建的或在運行期間累積的鉤狀窗口、對象實例、對象以及列表的內存。因為Application擁有所有窗體,因此,在其析構函數中將刪除所有窗體。
TApplication::BringToFront
將在桌面所有其他應用程序中的最後一個激活的窗口作為最前端窗口。
void__fastcall BringtoFront(void);
使用BringToFront過程,可以查找屬於MainForm的最後激活的窗口並將其帶到前台。BringToFront過程還可用於檢查在使其成為最前端窗口前,該窗體是否可視和已激活。
TApplication::CancelHint
為控件取消提示的顯示。
void__fastcall CancelHint(void);
應用程序很少直接調用CancelHint過程。CancelHint過程被內部使用以在適當的時候取消提示的顯示,例如窗口為無效時或者關閉應用程序時。CancelHint過程調用一系列例程以完成對控件提示窗口的顯示和定時問題的清除。
TApplication::ControlDestroyed
通知應用程序一個控件已被刪除。
void__fastcall ControlDestroyed(Controls::TControl*Control);
ControlDestroyed過程作為內部使用並由TControl自動調用。沒有需直接調用它的任何理由。ControlDestroyed過程通知應用程序,由Control參數傳遞的控件已被刪除,以便應用程序指針,如MainForm和ActiveForm,被更新為指向一個有效控件對象或nil。
TApplication::CreateForm
創建一個新窗體。
void__fastcall CreateForm(System::TMetaClass*InstanceClass,void* Reference);應用程序很少需要加入對CreateForm過程的調用。一個典型的CreateForm過程的調用;當使用窗體設計器時,對自動創建的窗體進行處理。應用程序調用CreateForm過程,可在運行階段動態地創建一個窗體。
CreateForm過程創建一個新的類型窗體,窗體類型由FormClass參數指定,並將其賦值給由Reference參數給出的變量。新窗體的所有者為Application對象。默認時,在工程中由第一次調用CreateForm過程創建的窗體,是工程的主窗體。
TApplication::CreateHandle
如果應用程序還沒有主窗口,CreateHandle將為應用程序生成一個主窗口。
void__fastcall CreateHandle(void);
不能直接調用CreateHandle過程。在EXEs 中TApplication::Create調用CreateHandle過程。在DLLs中則不調用。CreateHandle過程封裝了許多慣用的Windows程序在WinMain中。例如,CreateHandle過程注冊Window Class,創建應用程序窗口以及確定如何顯示應用程序窗口。
TApplication::HandleException
為應用程序提供異常的默認處理方法。
void__fastcall HandleException(System::TObject*Sender);
當執行產生一個不響應Windows信息的事件的定制組件時,HamdleException過程對組件記錄器有用。為應用程序設定異常處理方法代碼,使用OnException事件處理程序。
如果所有應用程序代碼對一個異常的阻滯努力都無效的話,則應用程序自動調用Handl-eException方法,該方法日顯示一個表示發生錯誤的對話框。異常對象為Eabort除外,如果存在OnException處理程序,則HandleException過程對其進行調用;否則 HandleEception過程調用 ShowException以顯示一個表示發生錯誤的消息對話框。
TApplication ::HandleMessage
中斷應用程序的執行,以便在回到應用程序控制之前,Windows 能夠處理Windows消息隊列中的單個消息。
void__fastcall HandleMessage(void );
如果消息隊列為空,HandleMessage過程調用Application的 Idle方法,HandleMessage過程又反過來調用OnIdle事件處理程序(如果定義了該事件處理程序的話)。如果應用程序運行空的HandleMessage過程,則需要很長一段時間才能返回。因此當優先的行為被處理時,在等待處理消息為基礎的某事時不要調用handleMessage過程。相對地,當處理消息之外的其他行為時,應調用ProcessMessage.
TApplication::helpCommand
提供了以WinHelp AIP(應用程序設計接口)中的任何幫助命令的快速存取。
bool __fastcall HelpCommand (int Command .int Data ):
使用Helpcommand函數可存取 WinHelp 。HelpCommand 函數是一個嵌套函數,它只須調用 一個調用OnHelp事件的方法。
TApplication::helpcontext
為一個應用程序顯示幫助文件。
bool__fastcall HelpContext (Classes ::THelpContext Context);
使用HelpContext函數可為應用程序提出在CurrentHelpFile屬性中指定的Helpcontext函數直接調用OnHelp事件。Helpcontext函數傳遞包含在HelpFile 中有文件名稱以及在Context參數傳遞的上下文編號。例如,如果context數值為714,helpcontext方法將在屏幕是顯示幫助文件中714的上下文幫助ID。
如果Helpfile是一個空字符串,HelpJump函數返回False,這表明應用程序沒有幫助文件。在其他所有情況下,HelpJurmp函數返回True。
TApplication::HideHint
隱藏當前的提示。
void__fastcall HideHint(void);
應用程序很少直接調用Hide過程。HideHint過程被內部使用,根據預設的條件和計時器數值,在適當的時候隱藏提示窗口。例如,CancelHint調用HideHint過程。
TApplication::HintMouseMessage
調整提示窗口的顯示。
void__fastcall HintMouseMessage(Controls::TControl* Control,Messages::TMessage &Message);
應用程序很少直接調用HintMouseMessage過程。HintMouseMessage過程由內部使用,以管理提示窗口的顯示。
TApplication::HookMainWindow
使一個非C++Builder對話框能夠接收送到應用程序的主窗口的信息。
void__fastcall HookMainWindow(TWindowHook &Hook);
使用HookMainWindow 可以使非C+ + Builder 對話框能夠如同子應用程序一樣工作,而不是作為單獨的窗口。例如,在調用HookMainWindow後,可以使用Alt + Tab在應用窗口中進行切換。當由Handle屬性標識的窗口接收相關的對話框消息時,窗口把它作為Hook參數傳遞給對話過程。Hook參數為TWindowHook類型,是用於非Delphi對話過程的方法指針。除語法有點不同外,對話過程與窗口過程在處理對話框消息時相似。
對話框可以與主窗口掛接,一旦關閉對話框,將調用UnhookMainWindow方法釋放掛接。
TApplication::Initalize
Initalize過程為初始化諸如OLE自動控制這樣的分系統提供了機會。
void __fastcall Initalize(void);
Initalize過程是每個Delphi工程第一個調用的方法。它調用InitProc過程指針。默認時,由於InitProc過程指針為nil,因此應用程序調用Initalize過程不執行任何操作。為使用Initalize過程,必須預先確定InitProc過程指針。這可以通過下面兩種方法的其中一個來完成:
包含一個定義InitProc的單元,如OleAuto單元。
創建一個給InitProc過程指針賦值的自定義初始化過程,並且加入一個工程源文件對調用該過程要先於調用Initalize的過程。
在一個應用程序中只能定義一個InitProc的實例。如果不止一個單元為InitProc設定了一個數值,則僅是最後一次賦值的單元工作。對於沒有對InitProc設定一個數值的工程,對Initalize過程的調用可能完全從工程源文件中刪除。盡管Initalize過程是主工程源文件代碼第一個調用的方法,但它並不是應用程序第一個被執行的代碼。應用程度首先執行由應用程序使用的所有單元的Initalization部分。
TApplication::MessageBox
MessageBox函數用於向用戶顯示一個指定的消息。
int __fastcall MessageBox(char * Text,char * Caption,int Flags);
使用MessageBox函數,可以顯示一個普通的消息對話框,框內有一個或多個按扭。Caption參數是對話框的標題且是可選的。MessageBox函數是一個Windows API MessageBox函數的封裝。TApplication的MessageBox函數封裝自動為Windows API函數提供所需的缺少的窗口句柄參數。
Text參數的數值是要顯示的消息,如果需要消息長度可超過255個字符。長消息還可在消息框中自動z繞回。Caption參數的數值是顯示在對話框標題欄的標題,Caption參數的長度也可超過255個字符,但不能繞回。長標題產生寬的消息框。
關於Flags參數的可能數值,參見Windows API 幫助文件中的MessageBox函數。在該幫助文件上,相對應的參數被稱為TextType。Flags參數的數值確定在消息框顯示的按鈕以及消息框的行為。為獲得想要的效果,可以對Flags參數的數值進行組合。如果內存不夠創建消息框,則MessageBox函數返回值為0。其他的返回值見下表:
TApplication::Minimize
使用程序縮小到Windows任務欄上(最小化)。
void__fsteall Minimize (void);
直接調用Minimize過程以最小化應用程序。當用戶最小化應用程序時,自動調用Minimize方法。不要將Minimize方法與最小化一個窗體或窗口相混淆。對一個窗體或窗口的最小化、最大化功恢復,將改變WindowState屬性的數值。
TApplication::NormalizeAllTopMosts
使已被指定作為最前端的窗體含主窗口(它們的FormStyle屬性為fsAtayOnTop)和行為就像不是最前端的窗體一樣。
void__fastcall NormalizeAllTopMosts(void);
NormalizeAllTopMosts過程 的行為與NormalizeTopMosts方法類似。不同的是前者還包括主窗口。
TApplication::NormalizeTopMosts
使已被指定作為最前端的窗體(它們的formStyle屬性為fsStayOnTop)的行為就像不是最前端的窗體一樣。
void__fastcall NormalizetopMosts(void);
在使用NormalizeTopMosts過程中,可以使一個直接使用Windows API函數(如MessageBox 以及MessageDLG)顯示的消息框或對話框,出現在最前端的窗體上面。否則,保持在最前端的窗體將隱藏消息框。
當使用Delphi方法和函數顯示消息框昧是必需調用NormalizeToppMosts過程。為使以fsStayOnTop指定的窗體重新回到最前端,可調用RestoreTopMosts過程。
TApplication::ProcessMessages
暫時中斷應用程序的執行,以使Windows能夠應事件。
void__fastcall ProcessMessages(void):
調用processMessages過程,以允許Windows處理調用ProcessMessages過程時產生的事件。ProcessMessages方法使windows消息循環直至windows消息空,然後返回到應用程序。
注意:忽略消息處理只影響調用ProcessMessages過程的應用程序,而不影響其他應用程序。在冗長有運算中,定期地調用ProcessMessages過程可允許應用程序能夠響應繪畫和其他消息。
ProcessMessages過程不允許應用程序執行空操作,但HandleMessages過程允許。
TApplication::Restore
恢復一個最小化的應用程序至正常大小。
void__fastcall Restore(void);
使用Restore 過程,可以恢復應用程序至其最小化前的先前大小。當用戶恢復應用程序至正常大小時,自動調用Restore方法。不要將Restore方法與恢復一個窗體或窗口至其原始大小相混淆。
TApplication::restoreTopMosts
使fsStayOnTop指定的窗體重新恢復到最前端。
void __fastcall RestoreTopMosts(void);
使用RestoreTopMosts過程,可以使最初被指定為最前端的窗體(FormStyle屬性為fsStayOnTop重新回到最前端位置。這些窗體是用NormalizeTopMosts方法暫時成為非最前端窗體的。
TApplication::run;
Run過程用於執行應用程序。
void __fastcall Run(void);
Run過程包含應用程序的主信息循環。當應用程序的信息循環終止時,對Run過程的調用才能退出。創建一個新工程時,Delphi自動在工程文件中建立一個調用Run過程的主程序塊。當應用程序執行時,調用應用Run方法。
TApplication::ShowException
在消息框中顯示發生在應用程序中的異常。
void__fastcall ShowException(sysutils::Exception*E);
如果沒有為OnException事件指定處理程序,ShowException過程被Handleexception作為默認調用。如果一個異常處理程序濾過異常,對於那些沒有濾過的異常,需要調用ShowException過程。
指定應用程序如何進行異常處理,需要為OnException事件寫一個處理程序。由於默認的VCI異常處理程序將自動調用ShowException過程,因此在C++Builder應用程序中,很少需要調用ShowException過程。
TApplication::Tapplication
創建一個新的應用程序。
__fastcall virtual TApplication (Chasses ::TCommponent*AOwner);
應用程序不直接調用TApplication構造函數。每一個C+ + Builder應用程序自動創建一個應用程序對象的實例。對於TApplication對象,Create方法為其一些屬性設置默認值。 C+ +Breate方法構造函數還可使應用程序准備運行,例如通過建立提示窗口、應用程序圖標、主窗口句柄、HInstance及管理主窗口(窗體)的子窗口的列表等。
TApplication::Terminate
Terminate過程用於結束應用程序的執行。
void __fasteall Terminate ( void ):
Terminate過程調用Windows API 的PostQitMessage函數,以完成應用程序的順序關閉。Terminate 過程不是即時的。WM—QUIT消息和關閉主窗體,Trminate過程被自動調用。
TApplication::UnhookMainWindow
釋放先前通過調用HookMainWindow 方法掛接的對話過程。
void__fastcall UnhookMainWindow (TWindow Hook&Hook);
使用UnhookMainWindow 過程,可以釋放掛接的窗口。指定對話過程作為Hook參數的數值。TWindowHook類型中InhookMainWindow方法使用的參數類型。它是一個非Delphi對話框的對話過程使用的方法指針類型。對一個窗口而言,對話過程類似於一個窗口過程,在對話過程中為 對話框處理信息,但它的語法略有不同。
關於Windows掛接的更多信息,參見Windows幫助文件中的SetWindowsEx 函數和UnhookWindowsEx函數。
TApplication::OnActivate
當應用程序變為活動時,OnActivate事件發生。
__proprty classes::TNotifyEvent OnActivate = {read = fOnTctivate, write = TOnactivate } ;
當應用程序被激活時,使用OnActivate事件可以寫一個事件處理程序以招執行特定的處理。一個應用程序在下列情況下被子激活;當應用程序開始運行時,或者當焦點從另一Windows應用程序移回到該應用程序的任何窗口時。
TApplication ::OnDeactivate
當一個應用程序變為非活動時,Ondeactivate事件發生。
__property classes ::TNotifyEvent OnDeactivate = {read = FOnDeactivate,Write =FOnDeactivate };
使用在應用程序變為非激活之前立即產生的OnDeavtivate事件,可以指定任何特定的處理。當用戶從該應用程序切換到另一Windows 應用程序時,OnDeacativate事件發生。
TApplication ::OnException
在應用程序中出現一個未處理異常時,OnException事件發生。
__ptoperty TExceptionEvent OnException = {read = FOnException,write = ROnException};
使用OnException事件可以修改應用程序中出現一個未處理異常期間的默認行為。在HandleException方法中自動調用OnException事件處理程序。OnException事件只處理在信息處理期間產生的異常。在Application::Run執行之前或之後產生的異常。不能產生OnException事件。
如果一個異常通過了應用程序代碼中的try 塊,則應用程序自動調用HandleException方法,除非異常對象為EAbort。否則HandleWxception方法調用存在的OnException事件處理程序。如果OnWxception事件處理程序不存在,HandeException方法則調用TException以顯示一個指示產生錯誤的消息對話框。TExceptionEvent類型是OnException事件的類型,它指向應用程序中處理異常的一個方法。Sender參數為引發異常有對象,E參數為異常對象。
TApplication::OaHelp
當應用程序收到一個幫助的請求時,OnHelp事件發生。
__Property Classes::THelpevent OnHelp ={read=FOnHelp,write=FOnHelp};
使用OnHelp事件,可以寫一個被請求幫助時執行特定處理的事件處理程序。HelpContext方法自動引發OnHelp事件。將CallHelp參數設為True,可以使VCL在出現請求幫助事件時調用WinHelp。將CallHelp參數設為False,可避免VCL調用WinHelp。
所有應用程序幫助方法都經過OnHelp事件。只在OnHelp事件的CallHelp參數返回True或者OnHelp事件沒有被設定時,才調用WinHelp。為得到Command參數和DataCD數據數值,應在Win32開發參考幫助文件(Win32.HLP)中查找。這個幫助文件點明的WinHelp API(應用程序設計接口)。Data參數的數值視Command 參數的數值情況而定。若函數運行成功,則返回True否則返回False。
TApplication::OnHint
當鼠標光標移到一個能夠顯示幫助提示的控件或菜單選項上時,OnHint事件發生。
__property Classes::TNotifyEvent OnHint = {read=FOnHint,write=FOnHint};
使用OnHint事件,可以寫一個產生OnHint事件時執行特定處理的事件處理程序。當用戶鼠標光標位於Hint屬性數值為一個非空字符串("")的控件上時,OnHint事件發生。
OnHint事件的通常用法是,像顯示面板控件(TStatusBar)的標題一樣,顯示控件或菜單選項的Hint屬性數值,並籍此像使用狀態欄一樣使用面板。OnHint事件產生時,Hint屬性能夠指定一個幫助提示以及一個出現在別處的常用提示。
TApplication::OnIdle
當應用程序變為空閒時,OnIdle事件發生。
__property TIdleEvent OnIdle = {read=FOnIdle,write=FOnIdle};
使用OnIdle事件,可以寫一個應用程序空閒時執行特定處理的事件處理程序。當應用程序不處理代碼時,稱為應用程序空閒。例如,當應用程序等待來自用戶的輸入時,應用程序為空閒。
TIdleEvent類型是OnIdle事件的類型,它指向一個應用程序空閒時運行的方法。TIdleEvent類型有一個布爾型參數Done,默認時該參數為True。若參數Done為True,當OnIdle事件返回時,調用Windows API WaitMessage函數。只有在應用程序消息隊列中出現一個新消息時,WaitMessage函數才放棄對其他應用程序的控制。參數Done為False時,即使應用程序不忙,也不放棄對其他應用程序的控制。
當應用程序轉移到空閒狀態時,只調用一次OnIdle事件。除非參數Done設置為False,否則不連續調用OnIdle事件。將參數Done設置為False的應用程序,將消耗過多的CPU時間,從而影響整個系統性能。
TApplication::OnMessage
當應用程序收到Windows消息時,OnMessage事件發生。
typedef void__fastcall (__closure * TMessageEvent)(tagMSG &Msg, bool &Handled);
__property TMessageEvent OnMessage ={read=FOnMessage,write=FOnMessage};
使用OnMessage事件,可以捕獲任何或所有告知應用程序中所有窗口的Windows消息。當應用程序收到一個Windows消息時,產生OnMessage事件。在應用程序中,一個OnMessage事件處理程序的創建,可允許其他處理程序而不是那些為TApplication對象在事件中聲明的處理程序的響應消息。如果應用程序沒有一個針對輸入消息的特定處理程序,則消息將被發送到它所期望的窗口且Windows處理消息。
TmessageEvent類型是OnMessage事件的類型,它指向一個對輸入的Windows消息進行處理的方法。Msg參數用於識別Windows消息,Handled參數確定是否對消息進行處理。如果已完成對消息的處理,則Handled參數被設為True以避免正常的消息的處理。
注意:OnMessage事件只接收向消息隊列告知的消息而不是那些用Windows API的SendMessage函數直接發送的消息,每秒鐘將有成千上萬的消息流經OnMessage事件。由於OnMessage事件處理程序能夠影響整個應用程序的執行。因此,編寫事件處理程序代碼時要小心。
TApplication::OnNinimize
當應用程序被最小化時OnMinimize事件發生。
__property Classes::TNotifyEventOnMinimize= {read = FOnMinimize, write = FOnMinimize};
使用OnMinimize 事件,可以寫一個應用程序被最小化時執行特定處理的事件處理程序。應用程序被最小化,或是因為用戶最小化了主窗口,或是因為調用了Minimize方法。Icon屬性確定代表最小化有應用程序的圖標。
TApplication ::OnRestore
當先前被最小化的應用程序恢復到正常大小時,OnRestore事件發生。
__property Classes :: TNotifyEvent OnRestore = {read = FOnRestore, write = FOnRestore };
使用onrestore事件,可以寫一個應用程序從以一個圖標出現的最小化狀態被恢復時執行特定處理的事件處理程序。應用程序被恢復,或是因為用戶恢復應用程序,或是因為應用程序調用了Restore方法。不要將恢復一個應用程序與恢復一個窗體或窗口至原始大小相混淆。對一個窗體或窗口的最小化、最大化或恢復,將改變WindowState屬性的數值。
TApplication::OnShowHint
當應用程序著手為單個控件的幫助提示一個提示窗口時,OnShowHint事件發生。
__property TShowHintEvert OnShow Hint ={read =FOnShowHInt,write =FOnShowHint};
使用OnShowHint事件,可以寫一個修改幫助提示的外觀和行為的事件處理程序.TShowHinrEvent類型是OnShowHint 事件的類型,它指向一個為控件顯示幫助提示的方法。HintStr參數設置幫助提示的文本。若要獲取單個控件的提示文本,應調用GetLongHit函數或GetShoretHint函數並將結果賦值給HintStr參數。若要修改文本,只需修改該字符串的內容即可。
使用CanShow變量參數,可以允許阻止幫助提示的顯示。如果CanShow變量參數為True,顯示幫助提示CanShow變量參數為False,則不顯示幫助提示。HintInfo參數是一個記錄,它包含了關於幫助窗口的外觀和行為的信息。