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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

16、;而Alignment屬性則決定了文本在框中的對齊顯示格式。Lines屬性訪問的文本被存儲在一個TStrings對象中,單擊它的省略按鈕,可以通過對話框向它添加文本,也可以用程序對這一屬性進行操作,以達到修改或添加備注文本的目的。3List Box和Combo Box組件List Box(列表框)和Combo Box(組合框)都顯示列表項目,所不同的是組合框占用較少的空間。常見的Windows操作系統(tǒng)中,顯示可用磁盤驅動器時,用的就是組合框。列表框則提供了一個項目列表以供選擇,如Windows打開文件操作時顯示文件列表的就是List Box。1Button和BitBtn組件按鈕是Windows

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

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

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

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

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

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

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

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

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

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

27、垂直滾動條的群組框組件,它在Additional頁上,用于在窗體中提供一個可以多方向滾動的工具。如果只想顯示較大幅面的一個部分,并允許用戶對其進行滾動操作,ScrollBar將是理想的選擇??梢韵仍谌娴臐L動框中進行全面設計,然后適當地縮小外框,兩個方向的滾動條將自動顯示。它的Position屬性是集成在HorzScrollBar和VertScrollBar兩個集屬性下的,編程時,可以選定這兩個屬性進行操作。3幾個進度顯示組件在System、Sample、Win 32等頁上,Delphi還為用戶提供了幾個組件,完成顯示進度,增量等操作。組件Gauge可以顯示成長條狀的或餅狀的進度指示儀表。例

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

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

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

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

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

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

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

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

36、gner的彈出式菜單。使用Menu Designer的彈出式菜單中的Insert From Template可以向菜單添加菜單項、刪除菜單項等操作,還可以對標準主菜單模板進行添加、刪除、插入等操作。為菜單編制功能。可以雙擊菜單條,或在特定菜單條的Events頁上,雙擊它響應的事件的值段,Delphi將回到代碼編輯器,光標停在事件對應的事件處理過程中,可以為菜單編制實現任務的代碼。如果已經為Speed Bar上的加速按鈕編制了事件處理過程,而需要把相應的菜單項連接到事件處理過程上,則只需在該菜單項的Events頁的OnClick事件后,輸入事件處理過程的名稱即可。這樣單擊菜單項便和單擊加速按鈕實

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

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

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

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

41、屬性置為100,雙擊組件進入代碼編輯器,在它的事件中加入這樣一句程序: MessageBeep(0);運行時,會有規(guī)律地發(fā)出“?!甭暋1M管Delphi的計時器每秒可以產生1000次激發(fā),在編程中還必須注意程序對計時器激發(fā)的響應。如果程序處理OnTimer事件的時間超過Interval的設定值,就可能錯過事件,因為當下一次激發(fā)到來時,系統(tǒng)正忙于處理上一事件,則這次激發(fā)就會被忽略。同時要注意其他的Windows應用程序是否會影響計時器的觸發(fā)。如果后臺正運行著一個占用處理器的程序,就可能會導致Timer的觸發(fā)不準確,從而使前臺程序運行出現錯誤。Delphi在Dialogs頁上提供了幾個標準對話框,它

42、們是打開文件OpenDialog、保存文件SaveDialog、打開圖像OpenPictureDialog、保存圖像SavePictureDialog、字體FontDialog、顏色ColorDialog、打印PrintDialog、打印設置PrintsetupDialog、查找FindDialog、替換ReplaceDialog、頁面設置PageSetupDialog等組件。1. 調用標準對話框可以發(fā)現,除了Font、Find、Replace對話框之外,其余標準對話框的Events頁都是空白的。因為它們本身是不可視的對話框形式,所以不能響應標準的鼠標鍵盤操作,只能在程序中調用它們。在編制應用

43、程序時,可以先設計好主菜單。在需要使用標準對話框的菜單項的事件處理過程中,調用標準對話框的Execute等方法,以滿足設計需求,即響應菜單命令彈出標準對話框。2OpenDialog和SaveDialog組件OpenDialog和SaveDialog組件處理文件的打開與保存,它們擁有完全相同的屬性域。DefaultExt屬性表示默認擴展名。當用戶沒有輸入文件的后綴時,可以為用戶文件自動加擴展名。FileName屬性指定出現在FileName正文框中的默認文件名。Filter屬性提供了文件過濾器。FileEditStyle決定在輸入文件名時用Edit還是ComboBox;設置為fsComboBox

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

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

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

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

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

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

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

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

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

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

54、擇窗體、工程模板、或是啟動某個向導引導創(chuàng)建應用程序。New Items提供對Object Repository(對象倉庫)的瀏覽,對象倉庫中保留有窗體(Forms)、工程(Project)和向導(Wizards)。可以直接使用這些對象,復制到自己的工程中,或從現存的對象中繼承獲得。每個New Items對話框的標簽都可以被包含到自己的工程中。2存儲已建立的窗體樣板首先創(chuàng)制一個窗體的樣本,在窗體區(qū)域中單擊鼠標的右鍵,可以調出窗體的加速菜單。選用Add To Repository.,將彈出對話框,如圖1-14所示。在Forms列表框中,選擇想要創(chuàng)建為樣板的窗體。在Title文本框中輸入想要在樣本庫

55、內圖標下出現的文本。在Description文本框,輸入關于樣板的詳細說明。這樣在瀏覽樣本庫時,在狀態(tài)行上會顯示這段文字以進行提示。可以選擇一個圖標作為新窗體樣板的圖標,單擊Browse按鈕,選擇一個現有圖標來代表新的窗體樣板。否則將使用按鈕左邊的默認窗體圖標。單擊OK按鈕,Delphi會提示是否確認將窗體存儲為樣板。圖1-14 存儲窗體樣板對話框再次打開New Items對話框,會發(fā)現該窗體已經被保存成一個窗體樣板。3. 使用對話框向導對話框樣板呈現了友好界面的被保存對話框,而對話框向導卻能根據用戶提供的信息,智能地創(chuàng)建復雜的對話框。選擇FileNew.,在New Items的Dialog頁

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

57、。選擇FileNew選項,在New Items對話框中選用Projects頁,可以選擇將MDI、SDI、Windows 95 Logo等應用程序作為默認的工程類型,單擊所需工程的圖標,使之高亮度顯示,然后單擊OK按鈕,如圖1-15所示。在接下來的Select Dictionary對話框中指定一個用來包含新的工程文件的目錄,則一個工程樣板的副本在指定的目錄中打開。圖1-15 New Items對話框的Dialgos Projects選項卡2使用應用向導Application Wizard如果您想在打開一個工程時,利用應用向導來取代工程樣板而成為默認值,則使用FileNew,在New Items的Dialgos Projects選項卡上選用Applcation Wizard。這樣,雙擊它的圖標,會彈出一系列對話框,提問選擇工程是否需要一個標準的Windows對話框、含有哪些菜單、加速條等。圖1-16是使用應用向導后出現的第一個對話框。圖1-16 應用向導引導建立復雜的工程Delphi 會要求輸入工程文件名及它存儲的惟一目錄,并提示選擇應用程序是否使用MDI窗口、是否含有狀態(tài)行、提示等。選項設置完畢,單擊Finish按鈕,Application Wizard即按照要求,建立

溫馨提示

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

評論

0/150

提交評論