Delphi中TApplication類
━━━━━━━━━━━━━━━━━━━━━━━━━━ Delphi是一種面向?qū)ο蟮木幊陶Z(yǔ)言,由于它采用完全集成OOP的優(yōu)點(diǎn),因此使它成為目前十分流行的Windows開(kāi)發(fā)工具。在Delphi包含的眾多類中,TApplication是一個(gè)有著十分重要作用的類。TApplication類是用于描述Delphi編制的應(yīng)用程序的一個(gè)類。通過(guò)對(duì)這個(gè)類的靈活應(yīng)用可以編制許多有特點(diǎn)的程序。下面我們就舉幾個(gè)這方面的例子。
1 檢測(cè)當(dāng)前Windows程序是否被激活:
Tapplication類有一個(gè)屬性——Active,這個(gè)屬性就可以描述當(dāng)前運(yùn)行的程序是否被激活,成為Windows的焦點(diǎn)。檢測(cè)的代碼如下:
If Application.Active=False then ShowMessage(’當(dāng)前窗口沒(méi)有被激活’); 2 取得當(dāng)前程序的名稱:
Tapplication類的EXEName屬性可以返回這個(gè)可執(zhí)行程序的完整文件名(包含路徑)。實(shí)現(xiàn)的代碼如下所示:
ShowMessage(Application.ExeName); 3 改變程序極小化時(shí)的標(biāo)題
如果您細(xì)心觀察可以發(fā)現(xiàn),一些程序的標(biāo)題和程序的名稱并不一致,尤其是一些英文程序,窗體的標(biāo)題欄比較長(zhǎng),可以容納比較多的文字,而在最小化時(shí),往往變成了很少的幾個(gè)字母。這中間起作用的就是Tapplication類的Title屬性。這個(gè)屬性決定了程序最小化時(shí)的標(biāo)題,而窗口中標(biāo)題欄的標(biāo)題是由Form的Caption屬性來(lái)決定的。其代碼如下:
Form1.Caption:=’ 窗口的標(biāo)題’;
Application.Title:=’程序的標(biāo)題’; 其實(shí)我們也可以在在程序設(shè)計(jì)時(shí)指定Tapplication類的Title屬性值。操作的方法是在開(kāi)發(fā)環(huán)境中拉下Project菜單
選擇Options菜單時(shí)彈出如圖1 (略)的對(duì)話框。在這個(gè)對(duì)話框中的Title欄中填寫(xiě)程序的標(biāo)題一樣也可以達(dá)到這種效果。并且因?yàn)橐话愕墓こ涛募际且杂⑽拿?,所以程序運(yùn)行過(guò)程中彈出的消息框中的標(biāo)題是英文。但在指定了這個(gè)屬性之后,這個(gè)程序的所有消息窗口的標(biāo)題都變?yōu)門itle的值。這就使得程序看起來(lái)更加完整。
4 指明程序的主窗口
Windows系統(tǒng)中的界面都是窗口,但一般來(lái)講有一個(gè)主窗口。Tapplication的MainForm屬性就可以返回程序的主窗口。
5 顯示消息框
Delphi有許多顯示消息框的函數(shù)與過(guò)程,比較常用的是ShowMessage,它用起來(lái)雖然十分方便,但是卻有一個(gè)問(wèn)題,那就是這個(gè)消息框的按鈕是以英文顯示的。如果要生成一個(gè)含有中文顯示的按鈕就要求助于Tapplication的MessageBox函數(shù)了。這個(gè)函數(shù)的原形如下:
function MessageBox(Text Caption: Char; Flags: Longint): Integer; 在這個(gè)函數(shù)中,前兩項(xiàng)分別是顯示的提示信息和消息窗口的標(biāo)題,F(xiàn)lags是一個(gè)長(zhǎng)整值,用來(lái)指定按鈕的個(gè)數(shù)及功能。熟悉Delphi的用戶可能會(huì)注意到,這個(gè)函數(shù)和Delphi 3所提供的同名函數(shù)有一點(diǎn)不同,那不是這個(gè)版本中字符串參數(shù)都以字符的形式給出,而不再要求將其轉(zhuǎn)化成指針。我們?cè)谑褂脮r(shí)要注意加以區(qū)別。
Application.MessageBox('需要存盤嗎?'
'提示信息'
MB_OKCANCEL); 這個(gè)語(yǔ)句在運(yùn)行時(shí)顯示的樣式如圖2 (略) 所示。
最后就這個(gè)函數(shù)的返回值作一些說(shuō)明,實(shí)際上這個(gè)函數(shù)返回的是一個(gè)整型的數(shù)值,而這個(gè)數(shù)值被系統(tǒng)指定了具體的含義,比如:按下“確定”按鈕時(shí)返回的值是“1”,而其它按鈕的值列在表 1 中。
表 1 按鈕的意義及系統(tǒng)中對(duì)其定義的值
按鈕的意義 按下此按鈕時(shí)函數(shù)返回的值
IDABORT 3
IDCANCEL 2 IDIGNORE 5 IDNO 7 IDOK 1 IDRETRY 4 IDYES 6 6 控制窗口的尺寸
一般可以用窗口手柄來(lái)調(diào)整窗口的尺寸,但是也可以用Application的事件來(lái)調(diào)整。實(shí)現(xiàn)的方法是用以下兩個(gè)過(guò)程:
Application.Minimized;
Application.Restore; 前一個(gè)過(guò)程用來(lái)將程序的主窗口最小化,而后一個(gè)過(guò)程用來(lái)將最小化的窗口恢復(fù)到原來(lái)的尺寸。
7 鏈接聯(lián)機(jī)幫助文件
Application的CurrentHelpFile屬性能夠指定當(dāng)前程序所用的聯(lián)機(jī)幫助文件的文件名。這個(gè)屬性經(jīng)常與另一個(gè)方法聯(lián)合在一起使用。舉例如下:
Application.HelpFile := '聯(lián)機(jī)幫助文件名'; Application.HelpJump('聯(lián)機(jī)幫助文件的主題’) 通過(guò)這一命令組合,我們就能使系統(tǒng)彈出一個(gè)顯示某主題的聯(lián)機(jī)幫助文件。
8 在程序運(yùn)行時(shí)動(dòng)態(tài)地創(chuàng)建窗口
一般情況下,窗口是在設(shè)計(jì)時(shí)加入到工程項(xiàng)目中的,但是有時(shí)也需要我們?cè)诔绦蜻\(yùn)行時(shí)動(dòng)態(tài)地加入窗口,這就要用到Application 的CreateForm過(guò)程,舉例如下:
Form3:Tform3; //聲明窗口類
Application.CreateForm(TForm3 Form3); //創(chuàng)建窗口 9 結(jié)束程序
雖然我們可以用關(guān)閉主窗口的方法來(lái)關(guān)閉一個(gè)程序,但是更好的辦法是用Application的Terminate過(guò)程。它能夠起到更徹底地關(guān)閉程序的效果。
10 Destroy 屬性.
雖然Delphi提供了這一屬性
但是并不提倡使用它
如果要終結(jié)程序就要調(diào)用Terminate過(guò)程,而Destroy過(guò)程一般是用來(lái)在程序發(fā)生懸掛時(shí)來(lái)退出程序時(shí)才調(diào)用,有些類似Windows中的結(jié)束任務(wù)功能。它不僅能關(guān)閉程序?qū)嵗旧?,而且還能釋放程序所占用的資源,能夠達(dá)到將程序徹底清除出系統(tǒng)的目的。
|
|