Delphi中的Application對象_第1頁
Delphi中的Application對象_第2頁
Delphi中的Application對象_第3頁
Delphi中的Application對象_第4頁
Delphi中的Application對象_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Delphi中的Application對象TApplication是用于Delphi應(yīng)用程序的類型,該類在單元forms中聲明。TApplication是Delphi構(gòu)造 Windows應(yīng)用程序所需的類型,其方法和屬性集中包括了 Windows操作系統(tǒng)中創(chuàng)建、運行和銷毀應(yīng)用程序等既定的基本操作和屬性,因此在用Delphi編寫 Windows應(yīng)用程序時簡化了用戶和Windows環(huán)境之間的借口。 TApplication封裝了以下功能:Windows消息處理上下文聯(lián)機幫助菜單加速和鍵盤處理異常處理管理由Windows操作系統(tǒng)為應(yīng)用程序定義的基本部分,如主窗口、窗口類等每個Delphi應(yīng)用程序自動聲

2、明一個Application變量作為應(yīng)用程序的實例。如果Delphi應(yīng)用程序不是一個Web服務(wù)器應(yīng)用程序,那么該變量一定是TApplication類型。因此TAppli-cation不需要出現(xiàn)在組件選擇板(component palette)中,并在窗體設(shè)計器(form designer)中也不能對其進行可視化操作,故TApplication不具有發(fā)布屬性(published properties)。不過,TApplication的公共屬性(public properites)在設(shè)計時(design-time)是可以設(shè)置或修改的,如在Project|Options對話框的Forms和Appli

3、cation頁面中下面就向大家介紹TApplication中的大部分屬性、方法和事件屬性Active屬性Active指明了應(yīng)用程序是否處于活動狀態(tài)且擁有焦點。定義如下:property Active: Boolean;Active是只讀屬性。當(dāng)應(yīng)用程序是活動狀態(tài)時Active為True,否則為False。TApplica-tion的構(gòu)造器(constructor) 置Active為True。如果窗口或應(yīng)用程序擁有焦點,那么該應(yīng)用程序是活動的。當(dāng)其它應(yīng)用程序的窗口成為活的時,當(dāng)前應(yīng)用程序即為非活動的。應(yīng)用程序關(guān)閉時TApplication的析構(gòu)器(destructor) 置Active為Fals

4、e在應(yīng)用程序中,可以用一個計時器(TTimer)來檢查屬性Active的值,從而確定當(dāng)前的應(yīng)用程序是否是活動狀態(tài),以便作出相應(yīng)的處理。也可以在事件OnActive和事件OnDeactive中定義指定的操作屬性DialogHandle屬性DialogHandle提供使Delphi應(yīng)用程序使用非Delphi對話框的一種機制。定義如下:property DialogHandle: HWnd;當(dāng)使用API函數(shù)CreateDialog創(chuàng)建一個非模式化對話框時需要使用 DialogHandle,并且需要查看應(yīng)用程序消息循環(huán)中的消息以進行相應(yīng)的操作。比如,當(dāng)一個非模式化對話框收到一條激活消息(WM_NCAC

5、TIVATE)時可以將其句柄賦值到 DialogHandle,當(dāng)對話框收到一條解除激活消息時置DialogHandle為0屬性ExeName屬性ExeName包含了可執(zhí)行的應(yīng)用程序文件名極其路徑信息。定義如下:property ExeName: string;ExeName是只讀屬性。使用ExeName能夠得到應(yīng)用程序可執(zhí)行文件的文件名這是一個很有用的屬性。例如,運行光盤中的應(yīng)用程序 f:mediamyapp.exe 時,可能需要訪問目錄 f:mediadata 中的文件或者確定應(yīng)用程序所在的驅(qū)動器盤符。 這時可以使用Delphi提供的函數(shù)ExtractFilePath和ExtractFile

6、Name對屬性ExeName 進行解析,從而得到需要的信息屬性Handle屬性Handle提供了對應(yīng)用程序主窗口句柄的訪問。定義如下:property Handle: HWND;當(dāng)調(diào)用一個需要父窗口句柄的 Windows API函數(shù)時需要使用Handle屬性。例如,應(yīng)用程序中某個動態(tài)鏈接庫(DLL) 可能需要父窗口句柄以使得其自身能夠彈出并且顯示在最前端。使用Application.Handle構(gòu)成應(yīng)用程序的若干窗口,使得這些窗口在應(yīng)用程序中能夠被最小化、恢復(fù)、有效或無效。注意:編寫一個使用 VCL窗體的動態(tài)鏈接庫時,應(yīng)將主運行程序中主窗口的句柄賦值到該動態(tài)鏈接庫的Application.Ha

7、ndle屬性。這樣就使得動態(tài)鏈接庫的窗體成為主應(yīng)用程序的一部分。需要特別指出的是,永遠不要在EXE應(yīng)用程序中給Application.Handle賦值屬性HelpFile屬性HelpFile指明了應(yīng)用程序用于顯示幫助內(nèi)容的文件名。定義如下:property HelpFile: string;使用HelpFile是為了應(yīng)用程序擁有一個使用標準Windows幫助系統(tǒng)的幫助文件。Windows顯示由HelpFile屬性指明的幫助文件。要讓應(yīng)用程序?qū)崿F(xiàn)這一點,必須在運行時為HelpFile屬性賦予一個文件名的值,或者在設(shè)計時Project|Options對話框的Application頁面中指定一個幫助

8、文件。默認情況下,HelpFile是一個空串(''),并且應(yīng)用程序的幫助方法忽略所有的試圖顯示幫助。如果HelpFile包括任何內(nèi)容,幫助主題的方法將根據(jù)文件名調(diào)出 Windows幫助系統(tǒng)以提供聯(lián)機幫助注意:如果活動窗口的幫助文件已指定,則該文件將優(yōu)先于應(yīng)用程序的幫助文件顯示屬性Hint屬性Hint指明了出現(xiàn)在幫助提示框(Help Hint box)中的文本字符串。定義如下:property Hint:string;TApplication.Hint屬性就是鼠標正在移動經(jīng)過的控件或菜單項的 Hint值。該屬性也能被賦予一個向用戶提供動作、錯誤或其它信息的字符串值。因此,使用Hi

9、nt屬性也能夠:從控件傳遞提示信息到另一顯示區(qū),例如通過OnHint事件句柄將提示顯示到狀態(tài)欄中。這時是讀取Hint屬性。當(dāng)應(yīng)用程序正在進行某一動作時簡要描述其狀態(tài)。這時是設(shè)置Hint屬性。當(dāng)OnHint事件發(fā)生時幫助提示才出現(xiàn)。因此,即使TApplication的Hint屬性被賦予狀態(tài)欄的標題,例如狀態(tài)欄控件的標題顯示Hint屬性的當(dāng)前字符串值,也應(yīng)歸于OnHint事件Hint字符串包括兩部分:短提示和長提示。短提示用于簡潔的彈出提示;長提示與短提示之間用豎線"|"隔開,用于在狀態(tài)欄中顯示較詳細的提示信息??梢允褂脝卧?Controls中提供的字符串函數(shù)GetShortH

10、int和GetLongHint從Hint屬性中分解得到短提示和長提示注意:當(dāng)應(yīng)用程序通過設(shè)置Hint屬性向用戶提供某一事件發(fā)生的信息時應(yīng)當(dāng)切記,默認情況下,當(dāng)鼠標移動經(jīng)過某一控件時,Hint字符串被復(fù)位到該控件的Hint屬性值 屬性HintHidePause屬性HintHidePause 指定了鼠標尚未從控件或菜單項上移開、在隱藏幫助提示之前的時間間隔。定義如下:property HintHidePause: Integer;用HintHidePause以毫秒為單位指定等待時間,在TApplication 的構(gòu)造器中該屬性被置為2500毫秒(2.5秒)。控件或菜單項的幫助提示在Hint屬性中指

11、定注意:默認應(yīng)將HintHidePause的值預(yù)先確定為HintPause屬性值的3到5倍較合適屬性MainForm屬性MainForm唯一標識了應(yīng)用程序的主窗體。定義如下:property MainForm.: TForm;屬性MainForm指定的窗體不一定等同于應(yīng)用程序的主窗口。屬性MainForm的值一定是由方法CreateForm創(chuàng)建的所有窗體中的第一個窗體,但該窗體未必是應(yīng)用程序的主窗口。新建一個工程時,MainForm屬性值自動置為Form1。在設(shè)計時可通過Project|Options對話框中的Forms頁面在多個窗體中指定其中之一為MainForm在運行時是不能修改MainF

12、orm屬性的,因為該屬性是只讀的主窗體是應(yīng)用程序主題創(chuàng)建的第一個窗體。主窗體關(guān)閉即應(yīng)用程序終止在應(yīng)用程序中,可以調(diào)用方法Application.MainForm.Close來終止應(yīng)用程序運行,可以獲取Application.MainForm.Top、Application.MainForm.Left 等屬性的值從而確定當(dāng)前活動窗口的位置以及尺寸等屬性ShowMainForm屬性ShowMainForm確定了是否在應(yīng)用程序啟動時顯示主窗體。定義如下:property ShowMainForm.: Boolean;應(yīng)用程序用ShowMainForm屬性控制是否以及何時顯示其主窗體TApplicat

13、ion的構(gòu)造器置ShowMainForm為True。默認情況下主窗體將被顯示,MainForm屬性中指明了主窗體    如果需要在應(yīng)用程序啟動時隱藏主窗體,那么應(yīng)在主工程文件中調(diào)用 Application.Run之前置ShowMainForm為False,并且確信主窗體的Visible屬性值為False。這在許多實現(xiàn)OLE自動化服務(wù)器是很有用的,比如在啟動自動化服務(wù)時隱藏服務(wù)器程序的主窗體另外,如果需要在應(yīng)用程序啟動時顯示一個閃出圖片(Flash) 并為應(yīng)用程序的環(huán)境做一些準備,同時需要禁止主窗體顯示,這也可以利用屬性ShowMainForm來實現(xiàn)。比如Delphi啟動時就

14、禁止了主窗體的顯示。 屬性Terminated屬性Terminated報告應(yīng)用程序是否收到終止程序的Windows消息WM_QUIT。定義如下:property Terminated: Boolean;Terminated是只讀屬性。該屬性主要用于調(diào)用ProcessMessages 方法時應(yīng)用程序不必在停止后試圖處理Windows 消息。當(dāng)ProcessMessages方法收到消息WM_QUIT時,Terminated將被置為TrueDelphi應(yīng)用程序總會因為主窗體或應(yīng)用程序關(guān)閉,或者因為Terminate 方法被調(diào)用而收到消息WM_QUIT當(dāng)應(yīng)用程序執(zhí)行強度較大、占用系統(tǒng)資源較多的運算時,

15、應(yīng)當(dāng)周期性地調(diào)用Applicati-on.ProcessMessages方法,并檢查屬性Application.Terminated以確定是否需要終止運算從而終止應(yīng)用程序?qū)傩訳pdateFormatSettings屬性UpdateFormatSettings指明了當(dāng)用戶改變系統(tǒng)配置時應(yīng)用程序是否自動更新格式設(shè)置。定義如下:property UpdateFormatSettings: Boolean;使用UpdateFormatSettings屬性應(yīng)用程序可以控制自動更新格式設(shè)置。TApplication的構(gòu)造器置該屬性為True。當(dāng)應(yīng)用程序收到消息WM_WININICHANGE時將檢查Upda

16、teFormatSett-ings屬性。建議使用默認的格式設(shè)置,也就是Windows本地的設(shè)置??梢灾肬pdateFormatSe-ttings為False以避免在Delphi應(yīng)用程序執(zhí)行期間改變格式設(shè)置屬性UpdateMetricSettings屬性UpdateMetricSettings屬性指明是否對提示窗口字體和圖標標題等相關(guān)設(shè)置進行更新。定義如下:property UpdateMetricSettings: Boolean;UpdateFormatSettings屬性指明系統(tǒng)中提示窗口字體和圖標標題等設(shè)置改變是否反映到應(yīng)用程序中相關(guān)設(shè)置的改變TApplication的構(gòu)造器置Updat

17、eMetricSettings的初始值為True方法BringToFront方法BringToFront設(shè)置應(yīng)用程序中最近一次的活動窗口到桌面上所有窗口的最前端。其定義如下:procedure BringToFront;用BringToFront方法可以找到屬于主窗體的最近一次的活動窗口并且將其置于最前端BringToFront方法也可以測試和查看一個窗口在成為最前端窗口之前是否是可見 (Visible)和有效的(Enabled) 例如,當(dāng)應(yīng)用程序收到郵件時,可能需要將專門的處理程序激活并置于Windows 桌面的最前端。這時就可以調(diào)用Application.BringToFront方法來實現(xiàn)

18、方法CreateForm方法CreateForm方法用于創(chuàng)建新的窗體(form)。定義如下:procedure CreateForm(FormClass: TFormClass; var Reference);Delphi應(yīng)用程序總會調(diào)用CreateForm方法。因此程序員很少有必要直接調(diào)用CreateForm方法。一個典型的Delphi工程在工程的主體代碼部分包括一處或多處調(diào)用CreateForm方法,并且在使用窗體設(shè)計器時自動控制窗體的創(chuàng)建。也可以在運行時可以調(diào)用CreateForm方法來動態(tài)創(chuàng)建窗體CreateForm方法根據(jù)FormClass 參數(shù)創(chuàng)建一個新的指定的窗體并且將窗體賦予到

19、變量參數(shù)Reference。 新創(chuàng)建的窗體的所有者就是對象Application。 應(yīng)用程序?qū)⒌谝粋€調(diào)用CreateForm 創(chuàng)建的窗體默認為工程的主窗體方法HandleException方法HandleException為應(yīng)用程序的異常提供默認的句柄。定義如下:procedure HandleException(Sender: TObject);方法HandleException 對于編寫特定組件的作者來說是很有用的,因為它可以產(chǎn)生一個不必對Windows 消息產(chǎn)生響應(yīng)的事件。在應(yīng)用程序中可以利用OnException 事件句柄將其它的異常操作控制在自定義的代碼中   

20、在應(yīng)用程序代碼中,如果異常跳過了所有的try 塊,那么應(yīng)用程序?qū)⒆詣诱{(diào)用HandleException方法,并將顯示一個提示有錯誤發(fā)生的對話框。除非異常對象是EAbort,此時HandleException將調(diào)用OnException句柄(如果存在),否則將調(diào)用ShowException顯示一個提示有錯誤發(fā)生的對話框方法UnhookMainWindow    UnhookMainWindow方法用于釋放由HookMainWindow方法掛在主窗體的程序。定義如下:type TWindowHook = function(var Message: TMessage): Bool

21、ean of object;procedure UnhookMainWindow(Hook: TWindowHook);用UnhookMainWindow可以釋放掛鉤窗口。在參數(shù)Hook中指明對話框過程    TwindowHook 類型是調(diào)用HookMainWindow方法的參數(shù)。該參數(shù)是非Delphi對話框中調(diào)用對話程序的方法指針。對話程序與窗口程序相似,都是為對話框處理消息,只是語法不同    事件OnActivate當(dāng)應(yīng)用程序成為活動狀態(tài)時OnActivate事件發(fā)生。定義如下:type TNotifyEvent = procedure (Sen

22、der: TObject) of object;property OnActivate: TNotifyEvent;用OnActive事件編寫一個事件句柄來完成當(dāng)應(yīng)用程序成為活動狀態(tài)時指定特別的處理    當(dāng)一個Windows 應(yīng)用程序最初運行時或其焦點從另一個Windows 應(yīng)用程序轉(zhuǎn)移回到當(dāng)前應(yīng)用程序時,該應(yīng)用程序成為活動狀態(tài)事件OnDeactivate    當(dāng)應(yīng)用程序成為非活動狀態(tài)時OnDeactivate事件發(fā)生。定義如下:type TNotifyEvent = procedure (Sender: TObject) of object;pro

23、perty OnDeactivate: TNotifyEvent;在應(yīng)用程序成為非活動狀態(tài)之前可以立即觸發(fā)OnDeactive事件,從而完成在該事件句柄中指定的特別處理。當(dāng)用戶從當(dāng)前應(yīng)用程序轉(zhuǎn)換到另一應(yīng)用程序時,當(dāng)前應(yīng)用程序的OnDea-ctive事件即發(fā)生事件OnException    當(dāng)應(yīng)用程序中的某個無句柄的異常發(fā)生時事件OnException發(fā)生。定義如下:type TExceptionEvent = procedure (Sender: TObject; E: Exception) of object;property OnException: TExcepti

24、onEvent;可以通過OnException 事件來改變在應(yīng)用程序中無句柄的異常發(fā)生時的默認動作。在方法TApplication.HandleException方法中,OnException 事件句柄被自動調(diào)用    OnException 事件僅用于處理在進行消息處理時發(fā)生的異常。在Application.Run 執(zhí)行前或執(zhí)行后發(fā)生的異常不會導(dǎo)致OnException事件發(fā)生    如果某個異常在應(yīng)用程序代碼的try 塊中被忽略,那么應(yīng)用程序?qū)⒆詣诱{(diào)用HandleExc-eption方法。除非異常對象是EAbort,此時HandleException

25、 將調(diào)用OnException句柄(如果存在), 否則將調(diào)用ShowException 顯示一個提示有錯誤發(fā)生的對話框    TExceptionEvent類型是OnException事件的類型,該類型在應(yīng)用程序中指向一個處理異常的方法。參數(shù)Sender是引發(fā)異常的對象,而參數(shù)E 是異常對象事件OnHelp    當(dāng)應(yīng)用程序收到幫助請求時OnHelp事件發(fā)生。定義如下:type THelpEvent = function (Command: Word; Data: Longint; var CallHelp: Boo-lean): Boolean of

26、object;property OnHelp: THelpEvent;用OnHelp編寫一個事件句柄以完成有請求幫助時特別的處理。HelpContext方法和Help-Jump方法自動引發(fā)OnHelp事件    在事件發(fā)生之后置CallHelp為True使VCL調(diào)用WinHelp;置CallHelp為False以防止VCL調(diào)用WinHelp。 Delphi應(yīng)用程序中所有與幫助有關(guān)的方法都經(jīng)過OnHelp事件。僅當(dāng)OnHelp事件中的CallHelp參數(shù)返回True或OnHelp事件沒有被指定到有效的句柄時,WinHelp被調(diào)用事件OnHint    當(dāng)鼠

27、標指針移動經(jīng)過某個控件或菜單項并且該控件或菜單項能夠顯示幫助提示時,事件OnHint發(fā)生。定義如下:type TNotifyEvent = procedure (Sender: TObject) of object;property OnHint: TNotifyEvent;用OnHint編寫的事件句柄能夠在OnHint事件發(fā)生時執(zhí)行指定的操作。當(dāng)用戶停放鼠標指針在某個控件上,并且該控件的Hint屬性值不是空串(''),這時OnHint事件將發(fā)生    通常用OnHint事件顯示控件或菜單項Hint屬性的值作為某個面板控件(如TStatusBar)的標題,因

28、此把面板(panel) 用作狀態(tài)欄(status bar)。當(dāng)OnHint事件發(fā)生時,Hint屬性通常被指定為一個幫助提示(Help Hint)和一個在別處顯示的長提示(longer hint)事件OnIdle    當(dāng)應(yīng)用程序成為空閑狀態(tài)時OnIdle事件發(fā)生。定義如下:type TIdleEvent = procedure (Sender: TObject; var Done: Boolean) of object;property OnIdle: TIdleEvent用OnIdel編寫一個事件句柄當(dāng)應(yīng)用程序空閑時完成指定的操作。當(dāng)應(yīng)用程序不執(zhí)行任何代碼時即為空閑的。例

29、如,當(dāng)應(yīng)用程序等待用戶輸入時該應(yīng)用程序是空閑的    TIdelEvent類型是OnIdel事件的類型,它指向一個當(dāng)應(yīng)用程序空閑時運行的方法。對象TIdelEvent有一個默認為True的布而變量Done。當(dāng)Done為True時,Windows API 函數(shù)WaitM-essage將在OnIdel返回時被調(diào)用。WaitMessage 使其它應(yīng)用程序得到控制焦點直到應(yīng)用程序的消息隊列中出現(xiàn)一條新的消息。當(dāng)參數(shù)Done為False 且應(yīng)用程序不忙時,應(yīng)用程序不會使其它應(yīng)用程序得到控制焦點    當(dāng)應(yīng)用程序轉(zhuǎn)為空閑狀態(tài)時,OnIdel事件僅發(fā)生一次,直到參數(shù)D

30、one置為True才可能發(fā)生下一次OnIdel事件。應(yīng)用程序置Done為False消除了紊亂的CPU時間計數(shù),而該計數(shù)可能影響整個系統(tǒng)的性能Delphi程序示例interfaceuses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,ComCtrls;type  TForm1 = class(TForm)    StatusBar1: TStatusBar;    procedure FormCreate(Sender: TObjec

31、t);  private  Private declarations   public    procedure CustomDisplayHint(Sender: TObject);    /Line 16 Public declarations   end;varForm1: TForm1;implementation$R *.DFMprocedure TForm1.CustomDisplayHint(Sender: TObject);begin  StatusBar1.SimpleText := G

32、etLongHint(Application.Hint);  /Line 29end;procedure TForm1.FormCreate(Sender: TObject);begin  Application.OnHint := CustomDisplayHint;  /Line 34end;end.    在上面的代碼中,第16行是開發(fā)者定義的用于事件OnHint的方法 CustomDisplayHint;    第29行是該方法的實現(xiàn)部分,將Application.Hint中的長提示解析出來,并在狀態(tài)欄中顯示出來;&

33、#160;   第34行是在窗體創(chuàng)建時將方法CustomDisplayHint 與事件Application.OnHint的句柄相關(guān)聯(lián)。    當(dāng)鼠標移動并停留在某個控件(如按鈕)上時,如果該控件各級宿主對象的ShowHint屬性(如果有)的值都為True并且其ShowHint屬性的值也為True,那么該控件的Hint屬性值中的短提示將以提示窗口的形式浮動顯示出來,而相應(yīng)的長提示則按照事件句柄中的指定操作將顯示在狀態(tài)欄中。 簡介 TApplication繼承關(guān)系:TObject TPersistent TComponent TApplication組件的

34、屬性:ActiveAllowTestingDialogHandleExeNameHandleHelpFileHintHintColorHintHidePauseHintPauseHintShortPauseIconMainFormShowHintShowMainFormTerminatedTitleUpdateFormatSettingsUpdateMetricSettings 從TCompnent繼承來的:ComObjectComponentCountComponentIndexComponentsComponentStateComponentStyleDesignlnfoName

35、OwnerTagVCLComObjectTApplication組件的方法:BringToFrontCancelHintControlDestroyedCreateCreateFomCreateHandleDestroyHandleExceptionHandleMessageHelpCommandHelpContextHelpJumpHideHintHintMouseMessageHookMainWindowlnitializeMessageBoxMinimizeNormalizeTopMostsNormalizeAllTopMostsProcessMessagesRestoreRestore

36、TopMostsRunShowExceptionTerminateUnhookMainWindow 從TComponent繼承來的:DestroyComponentsDestroyingFindComponentFreeNotificationFreeOnReleaseGetParentComponentHasParentInsertComponentRemoveComponentSafeCallException從TPersistent繼承來的:AssignGetNamePathTObject繼承來的:ClassInfoClassNarneClassNameIsClassParen

37、tClassTypeCleanupInstanceDefaultHandlerDispatchFieldAddressFreeFreelnstanceGetInterfaceGetInterfaceEntryGetInterfaceTableInheritsFormInitInstanceInstanceSizeMethodAddressMethodNameNewInstance TApplication組件的事件:OnActivateOnDeactivateOnExceptionOnHelpOnHintOnIdleOnMessageOnMinimizeOnRestoreOnShow

38、HintActive屬性 對應(yīng)對象:TApplication聲明:property Active: Boolean;功能:Active屬性是用來聲明應(yīng)用程序是否被激活。Active屬性是在運行時有效,它是只讀類型的。當(dāng)應(yīng)用程序處于激活狀態(tài)并且具有焦點時,它將返回真,否則將返回假。例子:/Place a timer on the form, and change its interval property to 100 procedure TForml.Timer1Timer(Sender: TObject); begin if Application.Active = True then Fo

39、rml.Caption := Application is active; else Forml.Caption := Application is inactive; end; BringToFront方法 對應(yīng)對象:TApplication聲明:procedure BringToFront;功能BringToFront方法用于將用戶的應(yīng)用程序的主窗體窗口放置到Windows Desktop上的其他窗口的前面。Windows Desktop有一個Z軸的次序,確定一個窗口相對于其他窗口的邏輯位置(上或下)。這個Z軸次序允許窗口以疊加的形式出現(xiàn),同時確定當(dāng)前的帶有焦點的窗口。BringToFro

40、nt使用戶的應(yīng)用程序的主窗體的窗口放置在Z軸次序的上部,這樣將使它擁有焦點并且處于被激活的狀態(tài),使其出現(xiàn)在Desktop的所有窗口之上。例子:/Rathcr annoying example that forces your window to the front procedure TForml.Timer1Timer(Sender: TObject); begin if Application.Active = False then Application.BringToFront; end; CreateFom方法 對應(yīng)對象:TApp1ication聲明:procedure Create

41、Form(InstanceClass: TComponentClass; var Reference);功能:CreateForm方法用來創(chuàng)建一個新的窗體。InstanceClass是要被創(chuàng)建的窗體的類型。Reference是賦予窗體的變量。Application對象擁有新創(chuàng)建的窗體。在項目源代碼中至少應(yīng)調(diào)用一次CreateForm,且該應(yīng)用程序的每一個窗體都將被調(diào)用,這些調(diào)用是由Delphi自動地調(diào)用,不需要用戶人工調(diào)用。例子:/Project source use View|Project Source from the IDE program Projectl; uses Forms,

42、Unit1 in Unitl.pas Form1; $R *.RES begin Application.Initialize; Application.CreateForm(TForm1, Forml); Application.Run; end; ExeName屬性 對應(yīng)對象:TApplication聲明;property ExeName: string;功能:ExeName包含了應(yīng)用程序可執(zhí)行文件的目錄和文件名。ExeName屬性在運行時有效,并且為只讀型的。它包含有應(yīng)用程序的可執(zhí)行文件名。Handle屬性 對應(yīng)對象:TApplication聲明:propeny Handle: HWND

43、;功能:包含有應(yīng)用程序窗口的句柄。Handle屬性在處理一個需要窗口句柄的API的調(diào)用時使用的。通常用戶不需要自己去訪問Application.Handle屬性。注意這里指的是不可視的應(yīng)用程序窗口的句柄并不是主體窗口的句柄。要獲得主體窗口的句柄應(yīng)使用TForm對象的Handle屬性。HeIpCommand方法 對應(yīng)對象:TApplication聲明:fuction HelpCommand(Command:Integer;Data:Longint):Boolean; 功能:HelpCommand允許用戶訪問Windows Help API中的任何命令。 Command是需要被調(diào)用的Windows

44、 Help API命令。Data是需要被傳送給Help命令的數(shù)據(jù)。HelpCommand方法調(diào)用了Windows Help的文件WINHELP.EXE,并且將它傳送給由Command參數(shù)指定的命令及由Data參數(shù)指定的數(shù)據(jù),被發(fā)送的命令指定了請求幫助的類型,而被發(fā)送的數(shù)據(jù)則依請求的命令而確定。以下例出了可以被傳送給HelpCommand的部分命令和數(shù)據(jù)值。 命 令 值 數(shù) 據(jù) 值 意 義 HELP_COMMAND 包含將要執(zhí)行的Help宏命令或一毓由分號分隔的Help宏命令的字符串地址 執(zhí)行Help宏命令或宏命令集。 HELP_CONTENTS 0 此項是為與4.0版本之前的幫助引擎相兼容而提

45、供的命令。對應(yīng)32位應(yīng)用程序應(yīng)使用HELP_FINDER命令。 HELP_CONTEXT 主題的上下文標識符 顯示由Data值標識的標題。 HELP_CONTEXTPOPUP 主題的上下文標識符 創(chuàng)建一個顯示了Data值指定的主題的彈出式窗口。 HELP_FINDER 0 顯示一個4.0版本Helptopics對話框。 HELP_FORCEFILE 0 用于保證WinHelp顯示正確的Help文件,如果不是正確的顯示,則裝載正確的Help文件。 HELP_INDEX 0 該命令與4.0以前的版本相兼容。新的應(yīng)用程序應(yīng)該使用HELP_FINDER來代替。 HELP_KEY 關(guān)鍵字字符串的地址 顯

46、示由關(guān)鍵字標識的標題,關(guān)鍵字的地址由Data傳遞。 HELP_PARTIALKEY 關(guān)鍵字字符串的地址 如果完全匹配,則顯示由關(guān)鍵字標識的主題,關(guān)鍵字的地址由Data傳遞,如果有一個以上的匹配,則顯示Index標簽。 HELP_QUIT 0 如果沒有其他的應(yīng)用程序請求Help,則將關(guān)閉Help應(yīng)用程序。 HELP_SETCONTENTS 對Contents主題的上下文的標識符 當(dāng)用戶按擊Contents按鈕時,指定要顯示的主題。 HELP_SETINDEX 對索引主題上下文的標識符 指定要在Index中顯示的關(guān)鍵字列表。 HELP_HELPONHELP 0 使用Windows Help顯示He

47、lp。 例子: /Load Windows Help procedure TForm1.mnuWindowsHelpClick(Sender:TObject); begin Application.HelpFile:=winhelp.hlp; Application.HelpCommand(HELP_FINDER,0); End; HelpContext方法 對應(yīng)對象:TApplication 聲明:function HelpContext(Context:IhelpContext):Boolean; 功能:HelpContext方法用來打開Windows Help并且顯示指定的屏幕。 在調(diào)用

48、HelpContext之前,用戶必須保證Application的HelpFile屬性被設(shè)置成為有效的Help文件。HelpContext將用來打開由HelpFile屬性指定Help文件并且裝載由context參數(shù)指定的屏幕。HelpContext的類型為ThelpContext,它是一個簡單的整數(shù),是在Help內(nèi)定義的ID值,并可以通過這個控件的HelpContext的屬性和界面元素相關(guān)聯(lián)。為了創(chuàng)建Help文件可以參考Mircosoft Help WorkShop用戶手冊。 例子: procedure TForm1.mnuHelpClick(Sender:TObject); begin App

49、lication.HelpFile:=my_apps_help.hlp; Application.HelpContext(11); End;  HelpFile屬性  對應(yīng)對象:TApplication 聲明:property HelpFile:String; 功能:HelpFile屬性指定應(yīng)用程序所使用的Help文件名。 HelpFile屬性在運行時是有效的,缺少時此值為空字符串。如果使用之前沒有將HelpFile設(shè)置成為一個有效的文件名,則在調(diào)用了Help方法之后,應(yīng)用程序?qū)Υ瞬僮骱雎浴?例子: procedure TForm1.mnuWindowsHelpClick

50、(Sender:TObject); begin Application.HelpFile:=winhelp.hlp; Application.HelpCommand(HELP_FINDER,0); end;  HelpJump方法  對應(yīng)對象:TApplication 聲明:function HelpJump(const JumpID:string):Boolean; 功能:HelpJump方法用于打開一個Windows Help的指定的頁。 HelpJump方法驅(qū)動Windows Help應(yīng)用程序的WINHELP.EXE文件,并且打開了包含有JumpID參數(shù)所指定的上下文

51、字符串的頁。如果Application的HelpFile屬性包含有一個有效的Help文件名的引用,則HelpJump將返回真,否則返回假。為了創(chuàng)建一個上下文字符串可以參考Mircosoft Help WorkShop用戶手冊。 例子: procedure TForm1.mnuGotoHelpClick(Sender:TObject); begin Application.HelpFile:=my_apps_help.hlp; Application.HelpJump(hlpMyIdentifier); end;  HintColor屬性  對應(yīng)對象:TApplication

52、 聲明:property HintColor:TColor; 功能:HintColor屬性用來確定在應(yīng)用程序中出現(xiàn)的工具的提示窗口的顏色值。 HintColor屬性確定了應(yīng)用程序所使用的工具提示窗口的背景顏色,這個顏色可以被設(shè)置成為任何的系統(tǒng)支持的顏色。一些通用的顏色是clBlack,clWhite,clYellow,clCaption及clWindow。HintColor是運行時有效的屬性。可以通過各種組件的Hint屬性來訪問提示。 例子: procedure TForm1.FormCreate(Sender:TObject); begin Application.HintColor:=cl

53、Aqua; Form1.Hint:=The HintColor demo program; Form1.ShowHint:=True; end;  HintHidePause屬性  對應(yīng)對象:TApplication 聲明:property HintHidePause:Integer; 功能:當(dāng)用戶使用鼠標指針在顯示的工具提示上沒有立即移開時,HintHidePause屬性用來確定工具提示的時間長短。 在缺少的情況時,工具的提示及在它消失之前顯示約2500毫秒。用戶可以用這個屬性修改顯示的時間長度,時間單位是毫秒。這個屬性是在運行時有效的??梢允褂妹總€組件的Hint屬性來訪

54、問工具提示。 例子: procedure TForm1.FormCreate(Sender:TObject(; begin /Set the HintHidePause to 5 seconds Application.HintHidePause:=5000; end;  HintPause屬性  對應(yīng)對象:TApplication 聲明:property HintPause:Integer; 功能:HintPause屬性用來指定在一個工具提示顯示之前的所顯示的時間長短。 當(dāng)鼠標在一個將被顯示的工具提示之上停留一段時間后,工具提示才顯示幫助。這個停留的時間可以由HintPa

55、use屬性來確定,單位是以毫秒來計算。缺少蝗時間是800毫秒。一般可以使用每個組件的Hint屬性來訪問組件。 例子: procedure TForm1.FormCreate(Sender:TObject); begin /Set the HintHidePause to 5 seconds Application.HintHidePause:=5000; /Set the HintPause to 1 second Application.HintPause:=1000; end;  HintShortPause屬性  對應(yīng)對象:TApplication 聲明:proper

56、ty HintShortPause:Integer; 功能:HintShortPause屬性用來確定在繪制之前工具提示的延遲時間的長短。 HintShortPause用于當(dāng)用戶移動鼠標經(jīng)過了一系列的與工具提示相關(guān)聯(lián)的組件時,禁止工具提示的快速繪制。它確定了工具提示在重新顯示之前的等待的時間長短,如果工具提示在近期已經(jīng)顯示過并且鼠標指針再次移動到這個組件上時,HintShortPause將顯示在工具再次顯示之前的延遲的時間。這個屬性在運行時是有效有,時間的單位是毫秒,在缺少時的值是50毫秒。工具提示可以通過組件的Hint屬性訪問。 例子: procedure TForm1.FormCreate(

57、Sender:TObject); begin /Set the HintPause to 1 second Application.HintPause:=1000; /Set the HintShortPause to 1/10th of a second Application.HintShortPause:=100; end;  Icon屬性  對應(yīng)對象:TApplication 聲明:property Icon:TIcon; 功能:Icon屬性確定一個代表應(yīng)用程序的圖標。 每一個應(yīng)用程序的圖標Icon屬性出現(xiàn)在應(yīng)用程序任務(wù)欄窗口的按鈕上,人微言輕應(yīng)用程序主窗體標題欄的圖標,并用來作為在文件瀏覽器中應(yīng)用程序的圖標。雖然圖標的Icon屬性可以使用代碼來設(shè)置,但一般從Delphi中的Project Options對話框中的Application的標簽中設(shè)置。如果沒有改變在選項中的圖標,那么當(dāng)用戶在Shell中查看時,可以為自己的應(yīng)用程序獲得缺少的“火炬”圖標。 例子: procedure TForm1.FormCreate(Sender:TObject); begin /Set the application icon Application.Icon.LoadFromFile(d:BorlandDelphi 4ImagesIconsEarth.ico)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論