Delphi是一種面向?qū)ο蟮木幊陶Z言,由于它采用完全集成OOP的優(yōu)點(diǎn),因此使它成為目前十分流行的Windows開發(fā)工具。在Delphi包含的眾多
類中,TApplication是一個(gè)有著十分重要作用的類。TApplication類是用于描述Delphi編制的應(yīng)用
程序的一個(gè)類。通過對(duì)這個(gè)類的靈活應(yīng)用可以編制許多有特點(diǎn)的程序。下面我們就舉幾個(gè)這方面的例子。
1 檢測當(dāng)前Windows程序是否被激活:
Tapplication類有一個(gè)屬性——Active,這個(gè)屬性就可以描述當(dāng)前運(yùn)行的程序是否被激活,成為Windows的焦點(diǎn)。檢測的代碼如下:
If Application.Active=False then
ShowMessage(’當(dāng)前窗口沒有被激活’);
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)題欄比較長,可以容納比較多的文字,而在最小化時(shí),往往變成
了很少的幾個(gè)字母。這中間起作用的就是Tapplication類的Title屬性。這個(gè)屬性決定了程序最小化時(shí)的標(biāo)題,而窗口中標(biāo)題欄的標(biāo)題是由
Form的Caption屬性來決定的。其代碼如下:
Form1.Caption:=’ 窗口的標(biāo)題’;
Application.Title:=’程序的標(biāo)題’;
其實(shí)我們也可以在在程序設(shè)計(jì)時(shí)
指定Tapplication類的Title屬性值。操作的方法是在開發(fā)環(huán)境中拉下Project菜單,選擇Options菜單時(shí)彈出如圖1
(略)的對(duì)話框。在這個(gè)對(duì)話框中的Title欄中填寫程序的標(biāo)題一樣也可以達(dá)到這種效果。并且因?yàn)橐话愕墓こ涛募际且杂⑽拿模猿绦蜻\(yùn)行過程中彈
出的消息框中的標(biāo)題是英文。但在指定了這個(gè)屬性之后,這個(gè)程序的所有消息窗口的標(biāo)題都變?yōu)門itle的值。這就使得程序看起來更加完整。
4 指明程序的主窗口
Windows系統(tǒng)中的界面都是窗口,但一般來講有一個(gè)主窗口。Tapplication的MainForm屬性就可以返回程序的主窗口。
5 顯示消息框
Delphi有許多顯示消息框的函數(shù)與過程,比較常用的是ShowMessage,它用起來雖然十分方便,但是卻有一個(gè)問題,那就是這個(gè)消息框的按鈕是以
英文顯示的。如果要生成一個(gè)含有中文顯示的按鈕就要求助于Tapplication的MessageBox函數(shù)了。這個(gè)函數(shù)的原形如下:
function MessageBox(Text, tion:
Char; Flags: Longint): Integer;
在這個(gè)函數(shù)中,前兩項(xiàng)分別是顯示的提示信息和消息窗口的標(biāo)題,F(xiàn)lags是一個(gè)長整值,用來指定按鈕的個(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ùn)行時(shí)顯示的樣式如圖2 (略) 所示。
最后就這個(gè)函數(shù)的返回值作一些說明,實(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 控制窗口的尺寸
一般可以用窗口手柄來調(diào)整窗口的尺寸,但是也可以用Application的事件來調(diào)整。實(shí)現(xiàn)的方法是用以下兩個(gè)過程:
Application.Minimized;
Application.Restore;
前一個(gè)過程用來將程序的主窗口最小化,而后一個(gè)過程用來將最小化的窗口恢復(fù)到原來的尺寸。
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ī)幫助文件的主題’)
通過這一命令組合,我們就能使系統(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過程,舉例如下:
Form3:Tform3; //聲明窗口類
Application.CreateForm(TForm3, Form3); //創(chuàng)建窗口
9 結(jié)束程序
雖然我們可以用關(guān)閉主窗口的方法來關(guān)閉一個(gè)程序,但是更好的辦法是用Application的Terminate過程。它能夠起到更徹底地關(guān)閉程序的效果。
10 Destroy 屬性.
雖然Delphi提供了這一屬性,但是并不提倡使用它,如果要終結(jié)程序就要調(diào)用Terminate過程,而Destroy過程一般是用來在程序發(fā)生懸掛時(shí)
來退出程序時(shí)才調(diào)用,有些類似Windows中的結(jié)束任務(wù)功能。它不僅能關(guān)閉程序?qū)嵗旧恚疫€能釋放程序所占用的資源,能夠達(dá)到將程序徹底清除出系統(tǒng)
的目的。
posted on 2010-02-22 15:30
Ke 閱讀(280)
評(píng)論(0) 編輯 收藏 所屬分類:
delphi