----Delphi是一種面向對象的編程語言,由於它採用完全集成OOP的優點,因此使它成為目前十分流行的Windows開發工具。在Delphi包含的眾多類中,Tapplication是一個有著十分重要作用的類。 TApplication類是用於描述Delphi編制的應用程序的一個類。通過對這個類的靈活應用可以編制許多有特點的程序。下面我們就舉幾個這方面的例子。
----1檢測當前Windows程序是否被激活:
----Tapplication類有一個屬性——Active,這個屬性就可以描述當前運行的程序是否被激活,成為Windows的焦點。檢測的代碼如下:
IfApplication.Active=Falsethen
ShowMessage('當前窗口沒有被激活');
----2取得當前程序的名稱:
----Tapplication類的EXEName屬性可以返回這個可執行程序的完整文件名(包含路徑)。實現的代碼如下所示:
----ShowMessage(Application.ExeName);
----3改變程序極小化時的標題
----如果您細心觀察可以發現,一些程序的標題和程序的名稱並不一致,尤其是一些英文程序,窗體的標題欄比較長,可以容納比較多的文字,而在最小化時,往往變成了很少的幾個字母。這中間起作用的就是Tapplication類的Title屬性。這個屬性決定了程序最小化時的標題,而窗口中標題欄的標題是由Form的Caption屬性來決定的。其代碼如下:
Form1.Caption:='窗口的標題';
Application.Title:='程序的標題';
----其實我們也可以在在程序設計時指定Tapplication類的Title屬性值。操作的方法是在開發環境中拉下PRoject菜單,選擇Options菜單時彈出如圖1(略)的對話框。在這個對話框中的Title欄中填寫程序的標題一樣也可以達到這種效果。並且因為一般的工程文件都是以英文命名的,所以程序運行過程中彈出的消息框中的標題是英文。但在指定了這個屬性之後,這個程序的所有消息窗口的標題都變為Title的值。這就使得程序看起來更加完整。
----4指明程序的主窗口
----Windows系統中的界面都是窗口,但一般來講有一個主窗口。 Tapplication的MainForm屬性就可以返回程序的主窗口。
----5顯示消息框
----Delphi有許多顯示消息框的函數與過程,比較常用的是ShowMessage,它用起來雖然十分方便,但是卻有一個問題,那就是這個消息框的按鈕是以英文顯示的。如果要生成一個含有中文顯示的按鈕就要求助於Tapplication的MessageBox函數了。這個函數的原形如下:
----functionMessageBox(Text,Caption:Char;Flags:Longint):Integer
;
----在這個函數中,前兩項分別是顯示的提示信息和消息窗口的標題,Flags是一個長整值,用來指定按鈕的個數及功能。熟悉Delphi的用戶可能會注意到,這個函數和Delphi3所提供的同名函數有一點不同,那不是這個版本中字符串參數都以字符的形式給出,而不再要求將其轉化成指針。我們在使用時要注意加以區別。
----Application.MessageBox('需要存盤嗎?','提示信息',MB_OKCANCEL);這個語句在運行時顯示的樣式如圖2(略)所示。
----最後就這個函數的返回值作一些說明,實際上這個函數返回的是一個整型的數值,而這個數值被系統指定了具體的含義,比如:按下“確定”按鈕時返回的值是“1”,而其它按鈕的值列在表1中。
----表1按鈕的意義及系統中對其定義的值
按鈕的意義按下此按鈕時函數返回的值
IDABORT 3
IDCANCEL 2
IDIGNORE 5
IDNO 7
IDOK 1
IDRETRY 4
IDYES 6
----6控制窗口的尺寸
----一般可以用窗口手柄來調整窗口的尺寸,但是也可以用Application的事件來調整。實現的方法是用以下兩個過程:
Application.Minimized;
Application.Restore;
----前一個過程用來將程序的主窗口最小化,而後一個過程用來將最小化的窗口恢復到原來的尺寸。
----7鏈接聯機幫助文件
----Application的CurrentHelpFile屬性能夠指定當前程序所用的聯機幫助文件的文件名。這個屬性經常與另一個方法聯合在一起使用。舉例如下:
Application.HelpFile:='聯機幫助文件名';
Application.HelpJump('聯機幫助文件的主題')
----通過這一命令組合,我們就能使系統彈出一個顯示某主題的聯機幫助文件。
----8在程序運行時動態地創建窗口
----一般情況下,窗口是在設計時加入到工程項目中的,但是有時也需要我們在程序運行時動態地加入窗口,這就要用到Application的CreateForm過程,舉例如下:
Form3:Tform3;//聲明窗口類
Application.CreateForm(TForm3,Form3);//創建窗口
----9結束程序
----雖然我們可以用關閉主窗口的方法來關閉一個程序,但是更好的辦法是用Application的Terminate過程。它能夠起到更徹底地關閉程序的效果。
----10Destroy屬性.
----雖然Delphi提供了這一屬性,但是並不提倡使用它,如果要終結程序就要調用Terminate過程,而Destroy過程一般是用來在程序發生懸掛時來退出程序時才調用,有些類似Windows中的結束任務功能。它不僅能關閉程序實例本身,而且還能釋放程序所佔用的資源,能夠達到將程序徹底清除出系統的目的。