Delphi中TApplication類的靈活使用
發(fā)表時間:2024-02-25 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]北京 魏文柏 ---- 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)的目的。