快速入門(mén)-Delphi_第1頁(yè)
快速入門(mén)-Delphi_第2頁(yè)
快速入門(mén)-Delphi_第3頁(yè)
快速入門(mén)-Delphi_第4頁(yè)
快速入門(mén)-Delphi_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、29第1章 Delphi快速入門(mén)第1章 Delphi快速入門(mén)Delphi是一種全新的可視化編程環(huán)境,一種方便、快捷的Windows應(yīng)用程序開(kāi)發(fā)工具。它使用了Microsoft Windows圖形用戶(hù)界面的許多先進(jìn)特性和設(shè)計(jì)思想,采用了彈性可重復(fù)利用的完整的面向?qū)ο蟪绦蛘Z(yǔ)言(Object-Oriented Language),是當(dāng)今世界上最快的編輯器、最為領(lǐng)先的數(shù)據(jù)庫(kù)技術(shù)。對(duì)于廣大的程序開(kāi)發(fā)人員來(lái)講,使用Delphi開(kāi)發(fā)應(yīng)用軟件,無(wú)疑會(huì)大大地提高編程效率,而且隨著應(yīng)用的深入,將會(huì)發(fā)現(xiàn)編程不再是枯燥無(wú)味的工作Delphi的每一個(gè)設(shè)計(jì)細(xì)節(jié)都將帶給您一份欣喜。1.1 Delphi的基本概念 Delph

2、i的基本形式Delphi實(shí)際上是Pascal語(yǔ)言的一種版本,但它與傳統(tǒng)的Pascal語(yǔ)言有天壤之別。Delphi程序首先是應(yīng)用程序框架,而這一框架正是應(yīng)用程序的“骨架”。在“骨架”上即使沒(méi)有附著任何東西,仍可以嚴(yán)格地按照設(shè)計(jì)來(lái)運(yùn)行。程序員的工作只是在“骨架”中加入自己的程序。默認(rèn)的應(yīng)用程序是一個(gè)空白的窗體(Form),運(yùn)行它,將得到一個(gè)空白的窗口。這個(gè)窗口具有Windows窗口的全部性質(zhì):可以被放大、縮小、移動(dòng)、最大化、最小化等,但卻不需編寫(xiě)一行程序。因此,可以說(shuō)應(yīng)用程序框架通過(guò)提供所有應(yīng)用程序共有的東西,為用戶(hù)的開(kāi)發(fā)應(yīng)用程序打下了良好的基礎(chǔ)。Delphi已經(jīng)做好了一切基礎(chǔ)工作程序框架就是一個(gè)

3、已經(jīng)完成的可運(yùn)行的應(yīng)用程序,只是不處理任何事情。所需要做的只是在程序中加入完成所需功能的代碼而已。在空白窗口的背后,應(yīng)用程序的框架正在等待用戶(hù)的輸入。由于并未告訴它接收到用戶(hù)輸入后作何反應(yīng),窗口除了響應(yīng)Windows的基本操作(移動(dòng)、縮放等)外,它只是接受用戶(hù)的輸入,然后再忽略。Delphi把Windows編程的回調(diào)、句柄處理等繁復(fù)過(guò)程都放在一個(gè)不可見(jiàn)的覆蓋物下面,這樣用戶(hù)可以不為它們所困擾,輕松從容地對(duì)可視組件進(jìn)行編程。面向?qū)ο蟮恼Z(yǔ)言,相對(duì)于以前的程序設(shè)計(jì)語(yǔ)言,代表了一種全新的思維模式,這種全新的思維模式能夠方便、有效地實(shí)現(xiàn)以往方法所不能企及的軟件擴(kuò)展、軟件管理和軟件復(fù)用,使大型軟件的高效率

4、、高質(zhì)量的開(kāi)發(fā)、維護(hù)和升級(jí)成為可能,從而為軟件開(kāi)發(fā)技術(shù)擴(kuò)展了一片新天地。面向?qū)ο蟮某绦蛟O(shè)計(jì)(Object-Oriented Programming,OOP)是Delphi誕生的基礎(chǔ)。OOP立意于創(chuàng)建軟件重用代碼,具備更好地模擬現(xiàn)實(shí)世界環(huán)境的能力,這使它被公認(rèn)為是自上而下編程的優(yōu)勝者。它通過(guò)給程序中加入擴(kuò)展語(yǔ)句,把函數(shù)“封裝”進(jìn)Windows編程所必需的“對(duì)象”中。面向?qū)ο蟮木幊陶Z(yǔ)言使得復(fù)雜的工作條理清晰、容易編寫(xiě)。說(shuō)它是一場(chǎng)革命,不是對(duì)對(duì)象本身而言,而是對(duì)它們處理工作的能力而言。對(duì)象并不與傳統(tǒng)程序設(shè)計(jì)和編程方法兼容,只是部分面向?qū)ο蠓炊鴷?huì)使情形更糟。除非整個(gè)開(kāi)發(fā)環(huán)境都是面向?qū)ο蟮?,否則對(duì)象產(chǎn)生

5、的麻煩比好處多。而Delphi是完全面向?qū)ο蟮模@就使Delphi成為一種觸手可及的促進(jìn)軟件重用的開(kāi)發(fā)工具,從而具有強(qiáng)大的吸引力。一些早期的具有OOP性能的程序語(yǔ)言,如C+、Pascal、Smalltalk等,雖然具有面向?qū)ο蟮奶卣?,但不能輕松地畫(huà)出可視化對(duì)象,與用戶(hù)交互能力較差,程序員仍然要編寫(xiě)大量的代碼。Delphi的推出填補(bǔ)了這項(xiàng)空白。用戶(hù)不必自己建立對(duì)象,只要在提供的程序框架中加入完成功能的代碼,其余的都交給Delphi去做。要生成漂亮的界面和結(jié)構(gòu)良好的程序,也絲毫不必絞盡腦汁,Delphi將幫助您輕松地完成。它允許在一個(gè)具有真正OOP擴(kuò)展的可視化編程環(huán)境中,使用它的Object Pa

6、scal語(yǔ)言。這種革命性的組合,使可視化編程與面向?qū)ο蟮拈_(kāi)發(fā)框架緊密地結(jié)合起來(lái)。1.2 Delphi可視化開(kāi)發(fā)環(huán)境簡(jiǎn)介進(jìn)入Delphi的可視化編程進(jìn)入Delphi的可視化編程和運(yùn)行普通的Windows應(yīng)用程序一樣,有以下幾種方法。1. 從任務(wù)欄的“開(kāi)始”“程序”菜單進(jìn)入安裝完Delphi之后,安裝程序會(huì)在“開(kāi)始”“程序”菜單中添加Borland Delphi 7菜單及其菜單項(xiàng),如圖1-1所示。2. 利用資源管理器進(jìn)入利用資源管理器打開(kāi)Delphi 7所在文件系統(tǒng)的目錄,雙擊Delphi32.exe文件名(在安裝過(guò)程中如果選擇了默認(rèn)安裝模式,Delphi32文件在Program FilesBor

7、landDelphi7Bin目錄下),如圖1-2所示。3. 從桌面進(jìn)入利用資源管理器打開(kāi)Delphi32.exe所在的目錄,用鼠標(biāo)單擊Delphi32文件,并將其拖到桌面上,這樣就創(chuàng)建了進(jìn)入Delphi 7 的快捷方式,啟動(dòng)時(shí)只需雙擊快捷圖標(biāo)即可,如圖1-3所示。圖1-1 從任務(wù)欄中進(jìn)入圖1-2 從資源管理器中進(jìn)入圖1-3 從桌面快捷方式進(jìn)入Delphi啟動(dòng)后,將顯示如圖1-4所示的可視化編程環(huán)境。首次運(yùn)行Delphi,屏幕上會(huì)出現(xiàn)如下5個(gè)主窗口:(1)標(biāo)題為“Delphi7-Project1”的Delphi主窗口。Delphi的主窗口位于屏幕的上端,包括主菜單、工具欄和組件板。(2)對(duì)象Tr

8、ee View(Object Tree View)。(3)對(duì)象觀(guān)察器(Object Inspector)。(4)標(biāo)題為 “Form1”的窗體設(shè)計(jì)器。(5)標(biāo)題為“Unit1.PAS”的代碼編輯器,剛啟動(dòng)時(shí)這一窗口的大部分被窗體設(shè)計(jì)器所覆蓋。按<F12>鍵,可以在窗體設(shè)計(jì)器與代碼窗口之間進(jìn)行切換。 對(duì)象Tree View 對(duì)象編輯器 主窗體 窗體設(shè)計(jì)器 代碼窗口圖1-4 Delphi 7可視化編程環(huán)境對(duì)象編輯器(Object Inspector)是進(jìn)行可視化編程時(shí)使用最為頻繁的工具之一。設(shè)置窗體和控件的屬性、切換設(shè)計(jì)對(duì)象以及為窗體、控件選擇或添加事件處理過(guò)程等操作都在其中進(jìn)行。對(duì)象編

9、輯器由“對(duì)象”列表框、“Properties”(屬性)選項(xiàng)卡和“Events”(事件)選項(xiàng)卡組成,如圖1-5所示。圖1-5 對(duì)象編輯器q “對(duì)象”列框表:位于對(duì)象編輯器上部的下拉列表框,其中顯示了窗體上所有對(duì)象的名稱(chēng)和類(lèi)型,包括窗體本身。可以通過(guò)對(duì)象列表框在窗體中的各個(gè)控件之間切換,也可以快速地回到窗體本身。q “Properties”(屬性)選項(xiàng)卡:顯示窗體中當(dāng)前被選擇對(duì)象的屬性信息,并允許改變對(duì)象的屬性。其中左邊一欄是屬性名,右邊是屬性值。q “Events”(事件)選項(xiàng)卡:列出了當(dāng)前對(duì)象可以響應(yīng)的事件信息。其中,左邊是事件名,右邊是響應(yīng)事件的過(guò)程名。若過(guò)程名是空白,說(shuō)明還未定義相應(yīng)的事件

10、過(guò)程。工程管理器(Project Manager)管理工程中的各類(lèi)文件的添加、刪除和打開(kāi)。可使用ViewProject Manager激活窗口。通過(guò)工程管理器可以了解工程的構(gòu)成,文件的名稱(chēng)和文件所在的路徑,可以單擊New按鈕創(chuàng)建新的程序單元(如窗體),單擊Remove按鈕可以從工程管理器材中刪除文件。具體的應(yīng)用在本章的后面會(huì)講到。代碼編輯器是程序代碼的輸入和編輯工具,盡管可視化編程技術(shù)的運(yùn)用大大減輕了程序員編寫(xiě)代碼的工作量,但并不能完全取代原始的代碼編寫(xiě)工作。代碼的編寫(xiě)仍然是整個(gè)程序設(shè)計(jì)的核心,一個(gè)程序的好壞將部分地取決于代碼的編寫(xiě)。代碼編輯器是Delphi提供的一個(gè)功能強(qiáng)大、使用方便的代碼編

11、寫(xiě)工具,它能提示和幫助程序員完成代碼的編寫(xiě)。代碼編輯器是一個(gè)選項(xiàng)卡風(fēng)格的文本編輯器。通過(guò)選項(xiàng)卡標(biāo)簽可以選擇要編輯的文 件。當(dāng)程序中含有不止一個(gè)窗口時(shí),會(huì)有幾個(gè)單元的源程序出現(xiàn)在代碼編輯器中,如圖1-6 所示。圖1-6 代碼編輯器代碼編輯器的標(biāo)題欄中顯示了當(dāng)前正在編輯的單元文件名。要查看某一特定程序的源代碼,只需用鼠標(biāo)單擊寫(xiě)有該單元文件名的標(biāo)簽,就可以對(duì)該單元文件進(jìn)行編輯了。當(dāng)單元文件較多時(shí),選項(xiàng)卡右上方的導(dǎo)航按扭可以左右滾動(dòng)選項(xiàng)卡標(biāo)簽,以便找到所需要的單元文件。CPU觀(guān)察窗口可以打開(kāi)一個(gè)應(yīng)用程序的低層次狀態(tài)的視圖,它由Disassem bly Pane(上左)。Registers Pane(上

12、中),F(xiàn)lags Pans(上右),Memory Dump Pane(下左)和Machine Stack Pane(下右)5個(gè)窗口構(gòu)成,如圖1-7所示。在程序運(yùn)行時(shí),使用ViewDebug WindowsCPU可以激活窗口。圖1-7 CPU觀(guān)察器1.3 可視化組件用法簡(jiǎn)介本節(jié)中,將較為深入地講解Delphi的組件,這是編制大型復(fù)雜應(yīng)用程序的必由之路。下面將對(duì)各組件分類(lèi)進(jìn)行簡(jiǎn)單的介紹,以便于在編程時(shí)能較快地了解有哪些組件可能滿(mǎn)足要求,并對(duì)其重要的方法、屬性等有一個(gè)大致的了解。常用的文本組件包括Label(標(biāo)簽)、Edit(文本編輯)、MaskEdit(格式編輯)、Memo(備注)、List Bo

13、x(列表框)、Combo Box(組合框)。除了MaskEdit在A(yíng)dditional頁(yè)之外,其他的都在Standard頁(yè)中。這些用來(lái)顯示各種格式的文本,其中有些是文本和數(shù)據(jù)輸入的途徑。1Label組件Label(標(biāo)簽)一般放在對(duì)象的旁邊,用來(lái)標(biāo)記這些對(duì)象,從而對(duì)用戶(hù)的操作進(jìn)行提示,也可以用來(lái)顯示其他信息??梢栽跇?biāo)簽中設(shè)置熱鍵,也即在Caption屬性值段中輸入含有“&”的字串。當(dāng)使用“Alt+關(guān)鍵字母”時(shí),將自動(dòng)選中它所指向的對(duì)象。方法是設(shè)置Label組件的FocusControl屬性,在值段中,選用與它關(guān)聯(lián)對(duì)象的對(duì)象名。2Edit、MaskEdit和Memo組件Edit、MaskE

14、dit、Memo組件都是用于接收、顯示用戶(hù)輸入文本的。它們具有一些相同的屬性。屬性ReadOnly在運(yùn)行時(shí)間內(nèi)控制對(duì)象是否可以進(jìn)行Windows的操作,當(dāng)此值為False時(shí),該框內(nèi)的文本就不能被復(fù)制到剪貼板上。屬性MaxLength可以設(shè)置輸入文本的長(zhǎng)度限制。用PasswordChar屬性可以按照顯示隱蔽密碼的方法顯示用戶(hù)輸入文本,例如,它的默認(rèn)值為“*”,運(yùn)行時(shí),用戶(hù)的輸入將用“*”來(lái)顯示,從而提供了一種安全機(jī)制。當(dāng)一個(gè)字段被加上高亮度顯示時(shí),按鍵操作會(huì)將這一字段刪除,替換成當(dāng)前的鍵盤(pán)輸入。這種設(shè)置為操作提供了方便,不必每次先刪除原來(lái)的文本;但也可能會(huì)導(dǎo)致誤刪文本。將AutoSelect屬性

15、設(shè)置成False,這種替代功能就被取消了。MaskEdit是格式文本輸入對(duì)象。它的EditMask屬性為它提供了過(guò)濾文本的格式。單擊這一屬性的省略按鈕,會(huì)彈出過(guò)濾編輯對(duì)話(huà)框(如圖1-8所示),除了Delphi提供的幾種屏蔽格式,用戶(hù)也可以自己編寫(xiě),查閱“幫助”,會(huì)提供更詳細(xì)的用法介紹。圖1-8 過(guò)濾編輯對(duì)話(huà)框Memo是備注框,與以上對(duì)象不同的是,它可以接收多行文本輸入。將ScrollBars屬性設(shè)置成ssVertical,可以為它加上一個(gè)垂直的滾動(dòng)條。Align屬性調(diào)整該對(duì)象在窗口中的對(duì)齊情況,有alNone(無(wú)對(duì)齊指定)、alBottom(底部對(duì)齊)、alClient(全窗口顯示)等可以選擇

16、;而Alignment屬性則決定了文本在框中的對(duì)齊顯示格式。Lines屬性訪(fǎng)問(wèn)的文本被存儲(chǔ)在一個(gè)TStrings對(duì)象中,單擊它的省略按鈕,可以通過(guò)對(duì)話(huà)框向它添加文本,也可以用程序?qū)@一屬性進(jìn)行操作,以達(dá)到修改或添加備注文本的目的。3List Box和Combo Box組件List Box(列表框)和Combo Box(組合框)都顯示列表項(xiàng)目,所不同的是組合框占用較少的空間。常見(jiàn)的Windows操作系統(tǒng)中,顯示可用磁盤(pán)驅(qū)動(dòng)器時(shí),用的就是組合框。列表框則提供了一個(gè)項(xiàng)目列表以供選擇,如Windows打開(kāi)文件操作時(shí)顯示文件列表的就是List Box。1Button和BitBtn組件按鈕是Windows

17、常用的組件,可以利用其中的Caption屬性來(lái)改變按扭的名稱(chēng)。作為執(zhí)行某種功能的指示,也可以設(shè)置內(nèi)置返回功能,將ModelResult屬性加以匹配,可以不用編程,直接實(shí)現(xiàn)系統(tǒng)內(nèi)置的功能。2Speed Button組件Speed Button(加速按鈕)組件在A(yíng)dditional頁(yè)上,是進(jìn)行工具條快速設(shè)計(jì)的理想組件。它只有一個(gè)位圖,沒(méi)有標(biāo)題。需要注意的是,用多個(gè)Speed Button制作一個(gè)工具條時(shí),必須先放置一個(gè)窗口類(lèi),如Panel(操作板)、Group Box(群組框)等。否則,試圖將加速按鈕先制作好再移上去,會(huì)發(fā)現(xiàn)加速按鈕會(huì)總是處于窗口類(lèi)組件下面不可見(jiàn)。當(dāng)然,可以對(duì)加速按鈕進(jìn)行復(fù)制、粘貼

18、到窗口類(lèi)組件上處理,那就另當(dāng)別論了。3Check Box與Radio Button組件Check Box(復(fù)選框)和Radio Button(單選按鈕)組件通常是相提并論的,多用作接收用戶(hù)“是”或“否”的輸入判別。一般都是成組的放置在Radio Group或Group Box組件中。所不同的是,成組的Radio Button是“互鎖”的,用戶(hù)選擇定一個(gè)后,其他的將自動(dòng)設(shè)置為不選;而Check Box組件則是分立的,可以同時(shí)選中其中的幾個(gè),也可以一個(gè)都不選。分組組件把其他的組件組合成一組,例如上述的單選按鈕組件Radio Button,就需要放入以下的成組組件中。分界組件用于在窗口中產(chǎn)生邊界和區(qū)

19、域,以區(qū)別于其他區(qū)域。1Group Box、Radio Group及Panel組件Group Box(群組框)、Radio Group(單選按鈕組)組件都可以將組件分類(lèi)、成組。兩組件均有標(biāo)題,可以用文字表征成組組件的標(biāo)題或信息。Radio Group可以進(jìn)行Column和Item屬性的設(shè)定,以決定其上的單選按鈕的提示文本及顯示格式。Panel組件也可以達(dá)到將組件分組的目的。通過(guò)編程向窗口加一個(gè)操作板組件,以書(shū)寫(xiě)提示和幫助信息,也不失為一種好方法。以上三個(gè)組件都在Standard頁(yè)。2NoteBook、TabSet及TabbedNoteBook組件記事本組件NoteBook一般和標(biāo)簽集組件Tab

20、Set共同使用,用來(lái)創(chuàng)建含有標(biāo)簽的重疊多窗體窗口。Pages屬性包含了一個(gè)頁(yè)名列表,在編程時(shí),將TabSet的Tabs屬性設(shè)置成NoteBook的Pages屬性,就可以使頁(yè)標(biāo)簽和相應(yīng)的窗體對(duì)應(yīng)起來(lái)。另外一個(gè)組件TabbedNoteBook是帶有標(biāo)簽的多窗體窗口,不過(guò),它的頁(yè)標(biāo)簽設(shè)在窗 口的上面。它們相當(dāng)于多個(gè)分組組件的集合,每次查看其中的一頁(yè)。以上三個(gè)組件在 Win 3.1頁(yè)。在Win 32頁(yè)上有TabControl、PageControl等組件。它們對(duì)于生成Windows風(fēng)格的標(biāo)簽集是很重要的。3分界組件在Win 3.1頁(yè)上,還有Header(表頭)組件,它在窗口中產(chǎn)生一個(gè)凸起的題條,提供了

21、一個(gè)可視化的文本顯示區(qū)域。Additional頁(yè)的Bevel(立體框)組件提供了一個(gè)方框,它的單一線(xiàn)條或整個(gè)邊框都可以通過(guò)Style屬性設(shè)置為外凸或內(nèi)凹,可以美化窗口。在Win 32頁(yè)上有HeaderControl、StatusBar等組件,為使用Windows風(fēng)格的界面提供了重要元素。1Image組件圖像組件Image在A(yíng)dditional頁(yè)上,用來(lái)在窗口中顯示一幅圖片,可以在picture屬性中調(diào)入圖像文件。Delphi支持位圖(.BMP)、圖標(biāo)(.ICO)、圖元(.WMF)、JPEG圖像文件(.JPG、.JPEG)和放大的圖元文件(.emf)幾種文件格式。比較重要的屬性是Autosize

22、和Strech。它們決定了圖像在窗口中的顯示尺寸。Autosize屬性為T(mén)rue表示按原尺寸顯示,Strech屬性為T(mén)rue表示圖像按對(duì)象圖框的大小顯示,這時(shí)圖像的大小可以隨意改變。2Shape組件圖形組件Shape可以處理多種幾何形狀,通過(guò)設(shè)置Pen和Brush的嵌套屬性,可以設(shè)置圖形邊框顏色、線(xiàn)型及圖形的風(fēng)格、填充方式、貼圖方式等。3PaintBox組件在System頁(yè)上還有一個(gè)PaintBox(繪圖框)組件,它在窗體上提供一塊可供繪圖的區(qū)域。這一組件需要編程實(shí)現(xiàn)它的功能,一個(gè)只有在運(yùn)行時(shí)才有效的重要屬性Canvas是完成繪圖的關(guān)鍵。PaintBox組件不能單獨(dú)存在于窗體中,必須把它放在固

23、定的分組組件中。1OutLine組件OutLine(略圖)組件在Win 3.1頁(yè)上,它適用于顯示分層的數(shù)據(jù)、文本。在Delphi中,略圖組件具有很寬的設(shè)置范圍。它的Lines屬性可以設(shè)置每一詞條的文本或數(shù)據(jù)。一般一個(gè)空格相當(dāng)于一個(gè)層次,如果在項(xiàng)目前加一個(gè)空格則表示它處于樹(shù)的下一層。所以在進(jìn)行Lines屬性編輯的時(shí)候不能用Tab鍵。在編程時(shí)用Lines和Items屬性來(lái)訪(fǎng)問(wèn)略圖的名稱(chēng)、索引及完整的路徑名。OutLineStyle屬性用來(lái)配置顯示時(shí)關(guān)系圖的風(fēng)格,可以選定用旁邊有圖標(biāo)的縮進(jìn)方式,也可以選擇連線(xiàn)方式。2目錄訪(fǎng)問(wèn)組件Delphi在System頁(yè)中提供了強(qiáng)大的文件目錄訪(fǎng)問(wèn)組件??梢葬槍?duì)具體

24、的用途設(shè)計(jì)自定義的文件對(duì)話(huà)框。它們是文件列表框FileListBox、目錄列表框DirectoryListBox、驅(qū)動(dòng)器下拉式列表框DriveComboBox和過(guò)濾式下拉列表框FilterComboBox組件。文件列表框組件FileListBox顯示當(dāng)前目錄中的文件,默認(rèn)的設(shè)置是顯示所有文件。通過(guò)改變Mask屬性來(lái)設(shè)置過(guò)濾器,可以使用DOS的標(biāo)準(zhǔn)通配方式,選擇要顯示的文件名。當(dāng)指定多個(gè)過(guò)濾器時(shí),之間用“;”隔開(kāi)。目錄列表框組件DirectoryListBox顯示當(dāng)前驅(qū)動(dòng)器內(nèi)的目錄,并且允許用戶(hù)在程序執(zhí)行時(shí)切換目錄。Column屬性決定目錄在窗口中用多少列進(jìn)行顯示,當(dāng)窗體空間不夠時(shí),用幾列進(jìn)行顯

25、示將有助于全面地顯示目錄信息。在Delphi中,當(dāng)窗口空間顯示不下全部信息時(shí),將自動(dòng)加上滾動(dòng)條,以方便用戶(hù)操作。驅(qū)動(dòng)器下拉式列表框組件DriveComboBox顯示當(dāng)前所在的驅(qū)動(dòng)器,并且在執(zhí)行時(shí)允許用戶(hù)在驅(qū)動(dòng)器之間切換。程序員在應(yīng)用這一組件時(shí),應(yīng)考慮當(dāng)用戶(hù)選擇到不存在的驅(qū)動(dòng)器時(shí),進(jìn)行容錯(cuò)、提示處理。FilterComboBox(過(guò)濾式下拉文件列表框)組件顯示當(dāng)前文件過(guò)濾器類(lèi)型,例如*.*,*.pas等。在執(zhí)行時(shí)允許用戶(hù)在下拉列表框中選擇要顯示的文件類(lèi)型。對(duì)Filter屬性進(jìn)行初始化,就會(huì)得到下拉式列表框。除了以上的四個(gè)組件外,在Sample頁(yè)上,Delphi還提供了一個(gè)目錄略圖組件Direct

26、oryOutline。它將當(dāng)前磁盤(pán)中的目錄結(jié)構(gòu)顯示成一個(gè)多層次的略圖,也允許用戶(hù)在運(yùn)行時(shí)進(jìn)行目錄的層次顯示切換。1ScrollBar組件ScrollBar(滾動(dòng)條)是在Windows應(yīng)用程序中常見(jiàn)的結(jié)構(gòu),在Delphi中多數(shù)組件有自己的是否加入滾動(dòng)條的屬性ScrollBar,但一個(gè)獨(dú)立的滾動(dòng)條組件仍是很有意義的。它在組件選項(xiàng)板的Standard頁(yè),提供一種可以改變菜單或是畫(huà)面中可見(jiàn)部分的工具,可以以一定的增量在一定范圍內(nèi)滾動(dòng)。Position屬性是個(gè)整形值,如果需要以動(dòng)態(tài)的方式顯示滾動(dòng)條,可以在程序中通過(guò)操作這一屬性來(lái)實(shí)現(xiàn)。2ScrollBox組件ScrollBox(滾動(dòng)框)組件是加上了水平、

27、垂直滾動(dòng)條的群組框組件,它在A(yíng)dditional頁(yè)上,用于在窗體中提供一個(gè)可以多方向滾動(dòng)的工具。如果只想顯示較大幅面的一個(gè)部分,并允許用戶(hù)對(duì)其進(jìn)行滾動(dòng)操作,ScrollBar將是理想的選擇。可以先在全幅面的滾動(dòng)框中進(jìn)行全面設(shè)計(jì),然后適當(dāng)?shù)乜s小外框,兩個(gè)方向的滾動(dòng)條將自動(dòng)顯示。它的Position屬性是集成在HorzScrollBar和VertScrollBar兩個(gè)集屬性下的,編程時(shí),可以選定這兩個(gè)屬性進(jìn)行操作。3幾個(gè)進(jìn)度顯示組件在System、Sample、Win 32等頁(yè)上,Delphi還為用戶(hù)提供了幾個(gè)組件,完成顯示進(jìn)度,增量等操作。組件Gauge可以顯示成長(zhǎng)條狀的或餅狀的進(jìn)度指示儀表。例

28、如在安裝軟件時(shí),可以編程讓這一組件顯示目前安裝的百分比。微調(diào)按鈕組件SpinButton含有指示向上、向下的兩個(gè)按鈕,它可以用來(lái)調(diào)節(jié)數(shù)值,使被控制的值按一定的增量單位由用戶(hù)進(jìn)行遞增或遞減。微調(diào)編輯框SpinEdit是微調(diào)按鈕和編輯框的結(jié)合,它在編輯區(qū)域顯示了數(shù)值,又在右側(cè)設(shè)了微調(diào)按鈕,使得用戶(hù)選擇調(diào)節(jié)按鈕或改變數(shù)值的方式來(lái)調(diào)整數(shù)據(jù)的值,并返回Value屬性。其他的此類(lèi)組件,因篇幅限制,此處不作贅述。具體組件的信息,按照名稱(chēng)在在線(xiàn)幫助中查詢(xún)其方法、域及應(yīng)用實(shí)例,可以得到詳細(xì)應(yīng)用資料。在A(yíng)dditional頁(yè)中,還有字符串表格組件StringGrid,繪圖表格組件DrawGrid等。它們可以用來(lái)模

29、擬按網(wǎng)格排列的事物,如成排的按鍵、操縱鈕、字符串等。屬性RowCount和ColCount設(shè)置了在網(wǎng)格中顯示的行列的數(shù)目,設(shè)置FixedCols和FixedRows的值,可以固定一些行列避免運(yùn)行時(shí)被改變。Options集屬性含有字符串表格組件的顯示方式、操作方式等,可以查閱幫助獲得詳細(xì)的信息,此處不再一一講述。圖形表格組件DrawGrid使用戶(hù)可以用表格的方式顯示非文本的數(shù)據(jù),它的應(yīng)用面比字符串表格組件更為廣泛,可以把圖片和文本一起放在網(wǎng)格中。顏色網(wǎng)格組件ColorGrid在Sample頁(yè)上,它提供控制前景色和背景色的界面,通過(guò)屬性ForeGroundColor和BackGroundColor

30、可以訪(fǎng)問(wèn)到,也可以通過(guò)程序,把得到的顏色賦給其他對(duì)象的顏色屬性。Sample頁(yè)的日歷組件Calendar也是用表格的方式表現(xiàn)的,它提供了一個(gè)簡(jiǎn)單的以月份為庫(kù)單元的日歷表格,通過(guò)設(shè)定Year和Month的值,可以得到相對(duì)應(yīng)的月份的日歷。多媒體(MultiMedia)和OLE組件媒體播放器組件MediaPlayer和OLE組件在System頁(yè)上。媒體播放器組件在處理多媒體文件時(shí)很有用。它顯示一個(gè)VCR風(fēng)格的控制面板,可以記錄或播放多媒體的圖像、聲音文件。通過(guò)屬性的設(shè)定來(lái)控制組件上的各個(gè)按鈕,如改變顯示顏色、增減按鈕數(shù)目等,改變一下ColoredButtons、EnabledButtons、Visa

31、bleButtons的各個(gè)子屬性值,就不難發(fā)現(xiàn)它們控制的顯示效果。具體的應(yīng)用請(qǐng)參閱幫助以及后文的詳細(xì)介紹。OLE客戶(hù)端組件OLEContainer在窗體中創(chuàng)建一個(gè)OLE用戶(hù)區(qū)域,用于與Delphi外部的某個(gè)對(duì)象進(jìn)行接口。若對(duì)外部的Paradox表格、Word文件、擴(kuò)展頁(yè)等進(jìn)行操作,則對(duì)象本身的應(yīng)用程序必須支持OLE操作。Delphi提供了支持OLE應(yīng)用的對(duì)象清單,右擊在窗體中已插入的OLE組件,選擇Insert Object就會(huì)顯示出來(lái)。具體的應(yīng)用,請(qǐng)查閱幫助或閱讀后文的詳細(xì)闡述。以上介紹了Delphi的基本可視組件。讀者可能會(huì)發(fā)現(xiàn),在Stardrad頁(yè)最前面的兩個(gè)組件MainMenu和Pop

32、upMenu還沒(méi)有提及。因?yàn)檫@是建立菜單的重要、基本的操作,我們將在1.4節(jié)中作詳細(xì)的介紹。另外,在下文中還將介紹比較重要的不可視組件。至于數(shù)據(jù)庫(kù)組件、動(dòng)態(tài)數(shù)據(jù)交換DDE組件等,因?yàn)樵诤竺嬲鹿?jié)中有詳盡的用法介紹,此處不贅述。1.4 使用非可視組件1.3節(jié)介紹的各種組件,在設(shè)計(jì)和運(yùn)行時(shí)的形式是一樣的。本節(jié)所介紹的組件,在運(yùn)行時(shí)被隱蔽地嵌入到窗口中,它們本身并不做任何事情,必須被用戶(hù)的程序所支持才能發(fā)生作用。因?yàn)榻M件的設(shè)計(jì)形狀和運(yùn)行狀態(tài)并不相關(guān),所以,這種組件在設(shè)計(jì)窗體中的位置無(wú)關(guān)緊要,可以放在窗體上不影響其他可視組件的任何位置。這種組件,稱(chēng)之為非可視 組件。主菜單MainMenu和彈出式菜單Po

33、pupMenu是Standard頁(yè)上的重要組件。菜單組件含有內(nèi)置的交互設(shè)計(jì)器。在設(shè)計(jì)菜單時(shí),可以用菜單設(shè)計(jì)器Menu Designer進(jìn)行工作。應(yīng)用程序的菜單有兩種形式:MainMenu是一般的Windows用戶(hù)界面必須的組件,它顯示在固定的位置,一般用鍵盤(pán)和鼠標(biāo)左鍵來(lái)激活菜單的功能項(xiàng);PopupMenu是彈出式菜單,例如一般以鼠標(biāo)的右鍵或其他快捷鍵來(lái)激活菜單;菜單的位置是在屏幕上“浮動(dòng)”的,根據(jù)鼠標(biāo)的當(dāng)前位置決定。1進(jìn)入菜單設(shè)計(jì)器Menu Designer創(chuàng)建菜單時(shí),首先要在窗體中放置一個(gè)菜單對(duì)象。然后調(diào)入Menu Designer進(jìn)行菜單的詳細(xì)設(shè)定。用兩種方式可以進(jìn)入Menu Design

34、er:選中菜單組件,單擊屬性中Items省略按鈕;或在菜單組件上雙擊左鍵,就會(huì)出現(xiàn)Menu Designer(如圖1-9所示)。圖1-9 菜單設(shè)計(jì)器(Menu Designer)2創(chuàng)建菜單的各個(gè)項(xiàng)目進(jìn)入Menu Designer,會(huì)發(fā)現(xiàn)在菜單的第一項(xiàng)位置上有加亮顯示。輸入頂層菜單項(xiàng)(實(shí)際上是在設(shè)定頂層菜單項(xiàng)的Caption屬性)并回車(chē)。一項(xiàng)菜單條設(shè)置完后,加亮顯示的位置被移至下拉菜單的下一項(xiàng),同時(shí),主菜單頂層上會(huì)出現(xiàn)虛線(xiàn)框,指示出下一個(gè)頂層菜單項(xiàng)的位置。要包含一個(gè)隔離條,可以輸入“-”并回車(chē)。逐步輸入菜單的各項(xiàng),用鼠標(biāo)左鍵切換到下一個(gè)頂層菜單,直到菜單完成。3設(shè)定加速鍵和熱鍵設(shè)定加速鍵,只需在

35、輸入時(shí)將“&”放到需要指定為加速鍵的字母前面,該字母將用下劃線(xiàn)顯示,運(yùn)行時(shí),按“Alt+加速鍵字母”可以激活該菜單條。設(shè)定熱鍵也是很方便的,只需在Object Inspector中該菜單條的ShortCut屬性值段的下拉菜單中,為它選定一個(gè)熱鍵組合即可。在運(yùn)行時(shí),通過(guò)“Ctrl+熱鍵字母”來(lái)激活菜單條。加速鍵和熱鍵并不矛盾,也可以同時(shí)指定它們。4. 使用Menu Designer的彈出式菜單Menu Designer中還有一個(gè)彈出式菜單,它提供了高頻菜單創(chuàng)建命令,并可以對(duì)模板選項(xiàng)進(jìn)行快速訪(fǎng)問(wèn)。在菜單設(shè)計(jì)器窗口中右擊,或?qū)⒐鈽?biāo)停在菜單設(shè)計(jì)器上,按Alt+F10,可以調(diào)出Menu Desi

36、gner的彈出式菜單。使用Menu Designer的彈出式菜單中的Insert From Template可以向菜單添加菜單項(xiàng)、刪除菜單項(xiàng)等操作,還可以對(duì)標(biāo)準(zhǔn)主菜單模板進(jìn)行添加、刪除、插入等操作。為菜單編制功能??梢噪p擊菜單條,或在特定菜單條的Events頁(yè)上,雙擊它響應(yīng)的事件的值段,Delphi將回到代碼編輯器,光標(biāo)停在事件對(duì)應(yīng)的事件處理過(guò)程中,可以為菜單編制實(shí)現(xiàn)任務(wù)的代碼。如果已經(jīng)為Speed Bar上的加速按鈕編制了事件處理過(guò)程,而需要把相應(yīng)的菜單項(xiàng)連接到事件處理過(guò)程上,則只需在該菜單項(xiàng)的Events頁(yè)的OnClick事件后,輸入事件處理過(guò)程的名稱(chēng)即可。這樣單擊菜單項(xiàng)便和單擊加速按鈕實(shí)

37、現(xiàn)同樣的功能。5創(chuàng)建嵌套菜單創(chuàng)建嵌套菜單也是重要的手段。Delphi的嵌套菜單風(fēng)格是嵌套菜單列在它上層菜單的邊上,如圖1-10所示。創(chuàng)建嵌套菜單,把加亮條移到它的上層菜單條上,按Ctrl+鍵,將彈出子菜單,就可以按照以上所述的方法進(jìn)行創(chuàng)建工作了。通過(guò)拖放操作,可以實(shí)現(xiàn)菜單條的重新定位。用鼠標(biāo)左鍵按住某一菜單條,移動(dòng)到菜單的某一位置,釋放左鍵,菜單條即得到重新定位。菜單設(shè)計(jì)器允許菜單條在頂層下移動(dòng)位置,支持菜單條在嵌套菜單中移進(jìn)、移出,甚至可以將菜單條在各個(gè)頂層菜單下屬的菜單間移動(dòng)與定位。6給菜單加提示(Hint)在菜單中加提示是很好的習(xí)慣。這樣在運(yùn)行菜單功能前,可以對(duì)菜單的任務(wù)有一個(gè)簡(jiǎn)略的了解

38、。在菜單條任一項(xiàng)的值段按F1,可以查閱在線(xiàn)幫助,在幫助的正文中找到OnHint并查閱它的例程,將DisplayHint等方法的例程復(fù)制到程序中。然后,在菜單條的Hint屬性中加入提示正文,運(yùn)行時(shí)當(dāng)用戶(hù)將鼠標(biāo)移到菜單項(xiàng)時(shí),在窗體的底部狀態(tài)行中會(huì)出現(xiàn)Hint屬性中的提示信息。圖1-10 創(chuàng)建嵌套菜單的界面7菜單的其他屬性簡(jiǎn)介菜單還有其他的一些屬性。Enabled屬性決定菜單是否被禁用,這在編程中可以實(shí)現(xiàn)一定情況下不允許使用某項(xiàng)菜單。Checked屬性表征了菜單項(xiàng)的開(kāi)關(guān)情況,當(dāng)Checked為T(mén)rue時(shí),菜單條的前面會(huì)出現(xiàn)選中標(biāo)志。Visible屬性控制菜單隱藏與否。設(shè)置這一屬性可以實(shí)現(xiàn)多版本的菜單

39、。被隱藏的菜單項(xiàng)以及它的子菜單都是不可見(jiàn)的,或是不可訪(fǎng)問(wèn)的。Popup Menu在用Menu Designer時(shí)是完全相同的。只不過(guò)它在運(yùn)行時(shí)和主菜單的激活形式有所不同:它是用鼠標(biāo)的右鍵激活的。彈出式菜單在一定的窗口范圍內(nèi)激活,所以必須將窗口和彈出式菜單聯(lián)系起來(lái)。在設(shè)計(jì)完P(guān)opupMenu后,須在Name屬性中為它命名,然后把這個(gè)名稱(chēng)賦給窗體的PopupMenu屬性。這樣,窗口會(huì)接收右鍵輸入,并激活彈出式對(duì)話(huà)框。Timer計(jì)時(shí)器組件Timer在System頁(yè)上,它能夠有規(guī)律地觸發(fā)OnTimer事件,發(fā)送信息給應(yīng)用程序。它是編制應(yīng)用程序時(shí)最為重要的組件之一。1Timer的重要屬性Enabled屬

40、性表示了計(jì)時(shí)器打開(kāi)還是關(guān)閉;用Interval屬性設(shè)置兩個(gè)OnTimer事件間的間隔,單位是ms。將間隔置為0相當(dāng)于關(guān)閉計(jì)時(shí)器,Interval的最大允許值是32767,即32.767s。2使用Timer對(duì)程序進(jìn)行控制計(jì)時(shí)器是獨(dú)立的對(duì)象,在啟動(dòng)與Windows無(wú)關(guān)的邏輯和應(yīng)用事件時(shí)極其有用。如用計(jì)時(shí)器可以模擬時(shí)鐘或計(jì)時(shí)器,可視地顯示經(jīng)過(guò)的時(shí)間;可以用作系統(tǒng)延時(shí),Delphi提示信息只需在該區(qū)域停頓幾秒,就是Timer應(yīng)用的一個(gè)例子;可以檢查系統(tǒng)環(huán)境、事件,根據(jù)結(jié)果進(jìn)行響應(yīng);也可以在窗口中閃爍一段正文或圖像,提示某種操作或處理正在進(jìn)行。在窗體中放置一個(gè)計(jì)時(shí)器Timer組件,將它的Interval

41、屬性置為100,雙擊組件進(jìn)入代碼編輯器,在它的事件中加入這樣一句程序: MessageBeep(0);運(yùn)行時(shí),會(huì)有規(guī)律地發(fā)出“叮”聲。盡管Delphi的計(jì)時(shí)器每秒可以產(chǎn)生1000次激發(fā),在編程中還必須注意程序?qū)τ?jì)時(shí)器激發(fā)的響應(yīng)。如果程序處理OnTimer事件的時(shí)間超過(guò)Interval的設(shè)定值,就可能錯(cuò)過(guò)事件,因?yàn)楫?dāng)下一次激發(fā)到來(lái)時(shí),系統(tǒng)正忙于處理上一事件,則這次激發(fā)就會(huì)被忽略。同時(shí)要注意其他的Windows應(yīng)用程序是否會(huì)影響計(jì)時(shí)器的觸發(fā)。如果后臺(tái)正運(yùn)行著一個(gè)占用處理器的程序,就可能會(huì)導(dǎo)致Timer的觸發(fā)不準(zhǔn)確,從而使前臺(tái)程序運(yùn)行出現(xiàn)錯(cuò)誤。Delphi在Dialogs頁(yè)上提供了幾個(gè)標(biāo)準(zhǔn)對(duì)話(huà)框,它

42、們是打開(kāi)文件OpenDialog、保存文件SaveDialog、打開(kāi)圖像OpenPictureDialog、保存圖像SavePictureDialog、字體FontDialog、顏色ColorDialog、打印PrintDialog、打印設(shè)置PrintsetupDialog、查找FindDialog、替換ReplaceDialog、頁(yè)面設(shè)置PageSetupDialog等組件。1. 調(diào)用標(biāo)準(zhǔn)對(duì)話(huà)框可以發(fā)現(xiàn),除了Font、Find、Replace對(duì)話(huà)框之外,其余標(biāo)準(zhǔn)對(duì)話(huà)框的Events頁(yè)都是空白的。因?yàn)樗鼈儽旧硎遣豢梢暤膶?duì)話(huà)框形式,所以不能響應(yīng)標(biāo)準(zhǔn)的鼠標(biāo)鍵盤(pán)操作,只能在程序中調(diào)用它們。在編制應(yīng)用

43、程序時(shí),可以先設(shè)計(jì)好主菜單。在需要使用標(biāo)準(zhǔn)對(duì)話(huà)框的菜單項(xiàng)的事件處理過(guò)程中,調(diào)用標(biāo)準(zhǔn)對(duì)話(huà)框的Execute等方法,以滿(mǎn)足設(shè)計(jì)需求,即響應(yīng)菜單命令彈出標(biāo)準(zhǔn)對(duì)話(huà)框。2OpenDialog和SaveDialog組件OpenDialog和SaveDialog組件處理文件的打開(kāi)與保存,它們擁有完全相同的屬性域。DefaultExt屬性表示默認(rèn)擴(kuò)展名。當(dāng)用戶(hù)沒(méi)有輸入文件的后綴時(shí),可以為用戶(hù)文件自動(dòng)加擴(kuò)展名。FileName屬性指定出現(xiàn)在FileName正文框中的默認(rèn)文件名。Filter屬性提供了文件過(guò)濾器。FileEditStyle決定在輸入文件名時(shí)用Edit還是ComboBox;設(shè)置為fsComboBox

44、時(shí),允許使用歷史列表HistoryList屬性,這在應(yīng)用程序需要經(jīng)常選擇文件時(shí),可以節(jié)約大量的時(shí)間。HistoryList屬性保存有在File Name下拉式編輯框中顯示的文件名,使用TStrings的省略按鈕可以編輯歷史列表。也可以編程實(shí)現(xiàn)將HistoryList屬性設(shè)為以前用OpenDialog打開(kāi)的文件名歷史列表。OpenPictureDialog和SavePictureDialog組件的使用基本與OpenDialog和SaveDialog組件的使用相同。3ColorDialog和FontDialog組件顏色對(duì)話(huà)框ColorDialog在前文的例程中已經(jīng)用過(guò),其更詳細(xì)的功能如Option

45、s的設(shè)定請(qǐng)查閱在線(xiàn)幫助。字體對(duì)話(huà)框Font可以幫助用戶(hù)獲取各種方式的字體。使用OnApply事件,可以使得Font對(duì)話(huà)框中包含一個(gè)Apply按鈕,單擊它,對(duì)話(huà)框中設(shè)定的字體會(huì)立即應(yīng)用到指定的對(duì)象中,而對(duì)話(huà)框仍然是打開(kāi)的,這樣更便于觀(guān)察修改的結(jié)果。4PrintDialog和PrintSetupDiaog組件打印對(duì)話(huà)框PrintDialog和打印設(shè)置對(duì)話(huà)框PrintSetupDialog可以顯示標(biāo)準(zhǔn)打印、打印設(shè)置對(duì)話(huà)框,支持打印文件和打印設(shè)置功能,設(shè)置它的Options屬性可以規(guī)定對(duì)話(huà)框的表現(xiàn)形式。5FindDialog和ReplaceDialogFindDialog和ReplaceDialog提

46、供了查找和替換兩個(gè)對(duì)話(huà)框組件,對(duì)于尋找和替換文本是極其有用的。在FindDialog和ReplaceDialog中都有OnFind事件,當(dāng)用戶(hù)單擊尋找對(duì)話(huà)框中的Find Next按鈕時(shí)將觸發(fā)這一事件。FindText屬性中保存了用戶(hù)在Find What編輯框中輸入的文本。在ReplaceDialog中還有OnReplace事件,當(dāng)用戶(hù)單擊替換對(duì)話(huà)框中的Replace和Replace All按鈕時(shí)將觸發(fā)OnReplace事件。FindText和ReplaceText屬性分別保存了用戶(hù)在Find What和Replace With編輯框中輸入的文本。6PageSetupDialog組件PageSe

47、tupDialog用于對(duì)頁(yè)面進(jìn)行設(shè)置,可以在PageHeight和PageWidth屬性中對(duì)紙張的高度和寬度進(jìn)行設(shè)定,并在Units屬性中設(shè)定單位。1.5 使用Delphi的工程管理、設(shè)計(jì)工具Delphi是完備的工程設(shè)計(jì)系統(tǒng),除提供了大量的可視化編程組件和簡(jiǎn)單方便的設(shè)計(jì)方法外,還備有功能強(qiáng)大的工程管理、窗口設(shè)計(jì)工具。絕大多數(shù)的應(yīng)用程序都用到不只一個(gè)窗口,Delphi允許用戶(hù)創(chuàng)建多文檔界面(MDI)應(yīng)用程序。應(yīng)用自動(dòng)創(chuàng)建窗體、窗體樣板、對(duì)話(huà)框向?qū)?、?yīng)用向?qū)У?,可以使得?chuàng)建應(yīng)用程序更為方便快捷,而且可重復(fù)利用,大大地降低了工作量。選擇主菜單的FileNew項(xiàng),在New頁(yè)中,選擇Form樣板,Del

48、phi會(huì)自動(dòng)創(chuàng)建一個(gè)空窗體Form2,并可以在其上進(jìn)行設(shè)計(jì),例如加入標(biāo)簽以顯示各種信息、加入圖片幫助說(shuō)明等。將Form2的BorderStyle屬性設(shè)置為bsDialog,則窗口成為運(yùn)行時(shí)不能改變大小的對(duì)話(huà)框。上面介紹了簡(jiǎn)單地生成一個(gè)雙窗體應(yīng)用程序的過(guò)程,應(yīng)用程序啟動(dòng)時(shí)將自動(dòng)創(chuàng)建第二個(gè)窗體。窗體保持隱蔽狀態(tài),但仍然占用Windows的資源。在大型應(yīng)用程序中,有時(shí)不希望在應(yīng)用程序加載時(shí)自動(dòng)創(chuàng)建所有窗體。Delphi可以指定哪些窗體被自動(dòng)創(chuàng)建。選擇ProjectOptions選項(xiàng),Delphi顯示Project options對(duì)話(huà)框。如果Forms不是當(dāng)前頁(yè),按動(dòng)下標(biāo)簽使之可見(jiàn)。當(dāng)窗體的數(shù)目逐步增

49、加時(shí),跟蹤窗體以及與之相連的庫(kù)單元代碼就變得比較煩瑣。用Delphi提供的工程管理器Project Manager可以使管理各種窗口更為方便。選擇ViewProject Manager選項(xiàng),或使用快捷鍵Ctrl+Alt+F11,可以調(diào)出工程管理器對(duì)話(huà)框,如圖1-11所示。圖1-11 工程管理器對(duì)話(huà)框?qū)υ?huà)框中顯示當(dāng)前所有打開(kāi)的工程的信息狀態(tài)和文件內(nèi)容,如果這個(gè)工程屬于一個(gè)工程組,那么Project Manager將顯示整個(gè)工程組的所有工程信息。利用Project Manager對(duì)話(huà)框,可以很容易地實(shí)現(xiàn)工程的可視化管理,了解工程文件是怎樣聯(lián)系在一起的;也可以選擇所要顯示的文件,方法是單擊鼠標(biāo)右鍵,

50、彈出快捷菜單,菜單列出了各種各樣的工程管理任務(wù),如打開(kāi)、添加或去掉某個(gè)文件,以及編譯整個(gè)工程;同樣,利用Project Manager也可以把某一工程添加到相關(guān)的工程組中。利用這種方法可以同時(shí)編譯多個(gè)可執(zhí)行文件。一般來(lái)說(shuō),利用Project Manager主要進(jìn)行與工程相關(guān)的任務(wù),比如添加或刪除文件,而不進(jìn)行工程文件的編輯工作,因?yàn)镈elphi能夠自動(dòng)跟蹤和更新工程管理操作所影響的 文件。保存現(xiàn)有的桌面設(shè)置,就能夠在打開(kāi)工程文件時(shí)自動(dòng)打開(kāi)Project Manager窗口,右擊鼠標(biāo)并選擇Dockable選項(xiàng)就可以使Project Manager窗口嵌入到其他可嵌入的窗口,或放置在這些窗口的旁邊

51、。從圖1-11中可以看出,Project Manager對(duì)話(huà)框的主要組件主要有:Project Manager文件瀏覽窗口、Project選擇器、Project Manager工具條、Project Manager狀態(tài)條、Project Manager快捷菜單。進(jìn)行工程管理的重要任務(wù)是設(shè)置Project Options。選擇ProjectOptions選項(xiàng),就會(huì)彈出Project Options對(duì)話(huà)框,如圖1-12所示。圖1-12 Project Options對(duì)話(huà)框利用Project Options對(duì)話(huà)框中的選項(xiàng),可以定制工程的窗體、應(yīng)用程序、編譯器、鏈接器等的選項(xiàng)以及管理工程目錄,也可以改

52、變當(dāng)前工程的設(shè)置,或新工程的默認(rèn)設(shè)置。如果當(dāng)前沒(méi)有打開(kāi)一個(gè)工程,則只能改變默認(rèn)設(shè)置屬性。Project Options對(duì)話(huà)框的選項(xiàng)含義如表1-1所示。表1-1 Project Options對(duì)話(huà)框的選項(xiàng)含義頁(yè) 名 稱(chēng)簡(jiǎn) 述Forms控制自動(dòng)創(chuàng)建窗體Application定制應(yīng)用程序的標(biāo)題、幫助文件名稱(chēng)以及圖標(biāo)名稱(chēng)Compiler定制編譯器開(kāi)關(guān)以決定代碼的編譯方式Linker管理如何將工程文件鏈接在一起Directories/Conditionals定制程序中所有需要編譯的文件的路徑VersionInfo定制產(chǎn)品認(rèn)證信息的類(lèi)型Packages定制設(shè)計(jì)期間和運(yùn)行期間的包,以安裝程序單擊各標(biāo)簽就可以

53、進(jìn)行標(biāo)簽之間的切換。對(duì)話(huà)框左下角的Default復(fù)選框,用來(lái)保存默認(rèn)設(shè)置。選中后,每個(gè)新工程就會(huì)使用當(dāng)前的設(shè)置。在Delphi中,一個(gè)重要的設(shè)計(jì)思想是軟件可重復(fù)使用,所以系統(tǒng)已經(jīng)載入了一些用戶(hù)可應(yīng)用的窗體樣板。使用窗體樣板可以簡(jiǎn)單生成各種對(duì)話(huà)框。1使用窗體樣板創(chuàng)建窗體創(chuàng)建一個(gè)新工程時(shí),Delphi已經(jīng)創(chuàng)建了一個(gè)新的空窗體。如果需要使用一個(gè)窗體樣板,向工程中增加一個(gè)窗體。選擇FileNewother選項(xiàng),Delphi即會(huì)顯示New Items對(duì)話(huà)框,如圖1-13所示。在Forms選項(xiàng)卡上,從樣板庫(kù)中選擇期望的新窗體增加到工程中。圖1-13 New Items對(duì)話(huà)框在New Items對(duì)話(huà)框可以選

54、擇窗體、工程模板、或是啟動(dòng)某個(gè)向?qū)б龑?dǎo)創(chuàng)建應(yīng)用程序。New Items提供對(duì)Object Repository(對(duì)象倉(cāng)庫(kù))的瀏覽,對(duì)象倉(cāng)庫(kù)中保留有窗體(Forms)、工程(Project)和向?qū)В╓izards)。可以直接使用這些對(duì)象,復(fù)制到自己的工程中,或從現(xiàn)存的對(duì)象中繼承獲得。每個(gè)New Items對(duì)話(huà)框的標(biāo)簽都可以被包含到自己的工程中。2存儲(chǔ)已建立的窗體樣板首先創(chuàng)制一個(gè)窗體的樣本,在窗體區(qū)域中單擊鼠標(biāo)的右鍵,可以調(diào)出窗體的加速菜單。選用Add To Repository.,將彈出對(duì)話(huà)框,如圖1-14所示。在Forms列表框中,選擇想要?jiǎng)?chuàng)建為樣板的窗體。在Title文本框中輸入想要在樣本庫(kù)

55、內(nèi)圖標(biāo)下出現(xiàn)的文本。在Description文本框,輸入關(guān)于樣板的詳細(xì)說(shuō)明。這樣在瀏覽樣本庫(kù)時(shí),在狀態(tài)行上會(huì)顯示這段文字以進(jìn)行提示??梢赃x擇一個(gè)圖標(biāo)作為新窗體樣板的圖標(biāo),單擊Browse按鈕,選擇一個(gè)現(xiàn)有圖標(biāo)來(lái)代表新的窗體樣板。否則將使用按鈕左邊的默認(rèn)窗體圖標(biāo)。單擊OK按鈕,Delphi會(huì)提示是否確認(rèn)將窗體存儲(chǔ)為樣板。圖1-14 存儲(chǔ)窗體樣板對(duì)話(huà)框再次打開(kāi)New Items對(duì)話(huà)框,會(huì)發(fā)現(xiàn)該窗體已經(jīng)被保存成一個(gè)窗體樣板。3. 使用對(duì)話(huà)框向?qū)?duì)話(huà)框樣板呈現(xiàn)了友好界面的被保存對(duì)話(huà)框,而對(duì)話(huà)框向?qū)s能根據(jù)用戶(hù)提供的信息,智能地創(chuàng)建復(fù)雜的對(duì)話(huà)框。選擇FileNew.,在New Items的Dialog頁(yè)

56、選用Dialogs Wizard,Delphi將提示回答各種問(wèn)題,以便于建立復(fù)雜的對(duì)話(huà)框。Delphi的工程樣板提供預(yù)先設(shè)計(jì)的工程來(lái)作為應(yīng)用程序開(kāi)發(fā)的起點(diǎn)。而應(yīng)用向?qū)t允許用戶(hù)按照一定的模式來(lái)創(chuàng)建一個(gè)應(yīng)用程序。1使用工程樣板如果通過(guò)一個(gè)工程樣板來(lái)開(kāi)始一個(gè)工程時(shí),除了空白工程樣板外,都會(huì)被要求指定一個(gè)惟一的子目錄即工程目錄Project Directory,用來(lái)存儲(chǔ)新的工程。如果指定一個(gè)不存在的目錄,Delphi會(huì)自動(dòng)生成它??梢酝ㄟ^(guò)加入新的窗體和程序庫(kù)單元來(lái)修改它,或不加修改地直接利用,而只是加入事件處理過(guò)程。無(wú)論如何修改,所作的修改只影響到打開(kāi)的工程,原先的工程樣板不會(huì)受到影響,可再次被利用

57、。選擇FileNew選項(xiàng),在New Items對(duì)話(huà)框中選用Projects頁(yè),可以選擇將MDI、SDI、Windows 95 Logo等應(yīng)用程序作為默認(rèn)的工程類(lèi)型,單擊所需工程的圖標(biāo),使之高亮度顯示,然后單擊OK按鈕,如圖1-15所示。在接下來(lái)的Select Dictionary對(duì)話(huà)框中指定一個(gè)用來(lái)包含新的工程文件的目錄,則一個(gè)工程樣板的副本在指定的目錄中打開(kāi)。圖1-15 New Items對(duì)話(huà)框的Dialgos Projects選項(xiàng)卡2使用應(yīng)用向?qū)pplication Wizard如果您想在打開(kāi)一個(gè)工程時(shí),利用應(yīng)用向?qū)?lái)取代工程樣板而成為默認(rèn)值,則使用FileNew,在New Items的Dialgos Projects選項(xiàng)卡上選用Applcation Wizard。這樣,雙擊它的圖標(biāo),會(huì)彈出一系列對(duì)話(huà)框,提問(wèn)選擇工程是否需要一個(gè)標(biāo)準(zhǔn)的Windows對(duì)話(huà)框、含有哪些菜單、加速條等。圖1-16是使用應(yīng)用向?qū)Ш蟪霈F(xiàn)的第一個(gè)對(duì)話(huà)框。圖1-16 應(yīng)用向?qū)б龑?dǎo)建立復(fù)雜的工程Delphi 會(huì)要求輸入工程文件名及它存儲(chǔ)的惟一目錄,并提示選擇應(yīng)用程序是否使用MDI窗口、是否含有狀態(tài)行、提示等。選項(xiàng)設(shè)置完畢,單擊Finish按鈕,Application Wizard即按照要求,建立

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論