明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

Delphi中TApplication類的靈活使用

[摘要]北京 魏文柏 ---- Delphi是一種面向?qū)ο蟮木幊陶Z言,由于它采用完全集成OOP的優(yōu)點,因此 使它成為目前十分流行的Windows開發(fā)工具。在Delphi包含的眾多類中,TApplic ation是一個有著十分重要作用的類。TApplication類是用于描述Delphi編制的應(yīng) 用程序的...
北京 魏文柏  


---- Delphi是一種面向?qū)ο蟮木幊陶Z言,由于它采用完全集成OOP的優(yōu)點,因此

使它成為目前十分流行的Windows開發(fā)工具。在Delphi包含的眾多類中,TApplic

ation是一個有著十分重要作用的類。TApplication類是用于描述Delphi編制的應(yīng)

用程序的一個類。通過對這個類的靈活應(yīng)用可以編制許多有特點的程序。下面我

們就舉幾個這方面的例子。  

---- 1 檢測當(dāng)前Windows程序是否被激活:  

---- Tapplication類有一個屬性——Active,這個屬性就可以描述當(dāng)前運行的程

序是否被激活,成為Windows的焦點。檢測的代碼如下:  

If  Application.Active=False then
ShowMessage(’當(dāng)前窗口沒有被激活’);

---- 2 取得當(dāng)前程序的名稱:  

---- Tapplication類的EXEName屬性可以返回這個可執(zhí)行程序的完整文件名(包

含路徑)。實現(xiàn)的代碼如下所示:  

---- ShowMessage(Application.ExeName);  

---- 3 改變程序極小化時的標(biāo)題  

---- 如果您細心觀察可以發(fā)現(xiàn),一些程序的標(biāo)題和程序的名稱并不一致,尤其是

一些英文程序,窗體的標(biāo)題欄比較長,可以容納比較多的文字,而在最小化時,

往往變成了很少的幾個字母。這中間起作用的就是Tapplication類的Title屬性。

這個屬性決定了程序最小化時的標(biāo)題,而窗口中標(biāo)題欄的標(biāo)題是由Form的Captio

n屬性來決定的。其代碼如下:  

  Form1.Caption:=’ 窗口的標(biāo)題’;
  Application.Title:=’程序的標(biāo)題’;

---- 其實我們也可以在在程序設(shè)計時指定Tapplication類的Title屬性值。操作

的方法是在開發(fā)環(huán)境中拉下Project菜單,選擇Options菜單時彈出如圖1 (略)的對

話框。在這個對話框中的Title欄中填寫程序的標(biāo)題一樣也可以達到這種效果。并

且因為一般的工程文件都是以英文命名的,所以程序運行過程中彈出的消息框中

的標(biāo)題是英文。但在指定了這個屬性之后,這個程序的所有消息窗口的標(biāo)題都變

為Title的值。這就使得程序看起來更加完整。  

---- 4 指明程序的主窗口  

---- Windows系統(tǒng)中的界面都是窗口,但一般來講有一個主窗口。Tapplication

的MainForm屬性就可以返回程序的主窗口。  

---- 5 顯示消息框  

---- Delphi有許多顯示消息框的函數(shù)與過程,比較常用的是ShowMessage,它用

起來雖然十分方便,但是卻有一個問題,那就是這個消息框的按鈕是以英文顯示

的。如果要生成一個含有中文顯示的按鈕就要求助于Tapplication的MessageBox

函數(shù)了。這個函數(shù)的原形如下:  

---- function MessageBox(Text, Caption: Char; Flags: Longint): Integer

;  

---- 在這個函數(shù)中,前兩項分別是顯示的提示信息和消息窗口的標(biāo)題,F(xiàn)lags是

一個長整值,用來指定按鈕的個數(shù)及功能。熟悉Delphi的用戶可能會注意到,這

個函數(shù)和Delphi 3所提供的同名函數(shù)有一點不同,那不是這個版本中字符串參數(shù)

都以字符的形式給出,而不再要求將其轉(zhuǎn)化成指針。我們在使用時要注意加以區(qū)

別。  

---- Application.MessageBox('需要存盤嗎?','提示信息',MB_OKCANCEL); 這

個語句在運行時顯示的樣式如圖2 (略) 所示。  

---- 最后就這個函數(shù)的返回值作一些說明,實際上這個函數(shù)返回的是一個整型的

數(shù)值,而這個數(shù)值被系統(tǒng)指定了具體的含義,比如:按下“確定”按鈕時返回的

值是“1”,而其它按鈕的值列在表 1 中。  

---- 表 1 按鈕的意義及系統(tǒng)中對其定義的值  

按鈕的意義 按下此按鈕時函數(shù)返回的值
IDABORT 3
IDCANCEL  2
IDIGNORE     5
IDNO     7
IDOK     1
IDRETRY 4
IDYES 6

---- 6 控制窗口的尺寸  

---- 一般可以用窗口手柄來調(diào)整窗口的尺寸,但是也可以用Application的事件

來調(diào)整。實現(xiàn)的方法是用以下兩個過程:  

Application.Minimized;
Application.Restore;

---- 前一個過程用來將程序的主窗口最小化,而后一個過程用來將最小化的窗口

恢復(fù)到原來的尺寸。  

---- 7 鏈接聯(lián)機幫助文件  

---- Application的CurrentHelpFile屬性能夠指定當(dāng)前程序所用的聯(lián)機幫助文件

的文件名。這個屬性經(jīng)常與另一個方法聯(lián)合在一起使用。舉例如下:
  

Application.HelpFile := '聯(lián)機幫助文件名';
Application.HelpJump('聯(lián)機幫助文件的主題’)

---- 通過這一命令組合,我們就能使系統(tǒng)彈出一個顯示某主題的聯(lián)機幫助文件。

  

---- 8 在程序運行時動態(tài)地創(chuàng)建窗口  

---- 一般情況下,窗口是在設(shè)計時加入到工程項目中的,但是有時也需要我們在

程序運行時動態(tài)地加入窗口,這就要用到Application 的CreateForm過程,舉例

如下:  

Form3:Tform3; //聲明窗口類
Application.CreateForm(TForm3, Form3); //創(chuàng)建窗口

---- 9 結(jié)束程序  

---- 雖然我們可以用關(guān)閉主窗口的方法來關(guān)閉一個程序,但是更好的辦法是用A

pplication的Terminate過程。它能夠起到更徹底地關(guān)閉程序的效果。  

---- 10 Destroy 屬性.  

---- 雖然Delphi提供了這一屬性,但是并不提倡使用它,如果要終結(jié)程序就要調(diào)用

Terminate過程,而Destroy過程一般是用來在程序發(fā)生懸掛時來退出程序時才調(diào)

用,有些類似Windows中的結(jié)束任務(wù)功能。它不僅能關(guān)閉程序?qū)嵗旧,而且還能

釋放程序所占用的資源,能夠達到將程序徹底清除出系統(tǒng)的目的。