华南俳烁实业有限公司

考試首頁(yè) | 考試用書(shū) | 培訓(xùn)課程 | 模擬考場(chǎng) | 考試論壇  
  當(dāng)前位置:編程開(kāi)發(fā) > DotNET > Delphi.Net > 文章內(nèi)容
  

Delphi基礎(chǔ)教程:Delphi快速入門(mén)(五)

 [ 2017年9月7日 ] 【

  1.4.3.1 調(diào)用標(biāo)準(zhǔn)對(duì)話框

  您可以發(fā)現(xiàn),除了Font,Find,Replace對(duì)話框之外,其余標(biāo)準(zhǔn)對(duì)話框的EVEnts頁(yè)都是空白的。因?yàn)樗鼈儽旧硎遣豢梢暤膶?duì)話框形式,所以不能響應(yīng)標(biāo)準(zhǔn)的鼠標(biāo)鍵盤(pán)操作,只能在程序中調(diào)用它們。在本章第一節(jié)的Demo程序中,我們已經(jīng)對(duì)用Color對(duì)話框有了了解,在程序的適當(dāng)位置加入對(duì)話框所屬的Execute方法,可以執(zhí)行標(biāo)準(zhǔn)對(duì)話框。

  在編制應(yīng)用程序時(shí),您可以先設(shè)計(jì)好主菜單。在需要使用標(biāo)準(zhǔn)對(duì)話框的菜單項(xiàng)的事件處理過(guò)程中,調(diào)用標(biāo)準(zhǔn)對(duì)話框的Execute等方法,以滿足設(shè)計(jì)需求,即響應(yīng)菜單命令彈出標(biāo)準(zhǔn)對(duì)話框。

  1.4.3.2 OpenDialog和SaveDialog部件

  OpenDialog(文件的打開(kāi))和SaveDialog(保存對(duì)話框)部件處理文件的打開(kāi)與存儲(chǔ),它們擁有完全相同的屬性域。DefaultExt屬性表示缺省擴(kuò)展名。當(dāng)用戶沒(méi)有輸入文件的后綴時(shí),可以為用戶文件自動(dòng)加擴(kuò)展名。FileName屬性指定出現(xiàn)在FileName正文框中的缺省文件名。Filter屬性提供了文件過(guò)濾器。FileEditStyle決定在輸入文件名時(shí)用Edit還是Combo- Box;設(shè)置為fsComboBox時(shí),允許使用歷史列表HistoryList屬性,這在應(yīng)用程序需要經(jīng)常選擇文件時(shí),可以節(jié)約大量的時(shí)間。HistoryList屬性保存有在File Name下拉式編輯框中顯示的文件名,使用[TStrings]的省略按鈕可以編輯歷史列表。您也可以編程實(shí)現(xiàn)將HistoryList屬性設(shè)為以前用OpenDialog打開(kāi)的文件名歷史列表。下列程序段可以實(shí)現(xiàn)自動(dòng)歷史文件名加載:

  if OpenDialog1.Execute then

  OpenDialog1.HistoryList.Insert(0,OpenDialog1.FileName);

  1.4.3.3 ColorDialog和FontDialog

  顏色對(duì)話框ColorDialog我們?cè)谇拔牡睦讨幸呀?jīng)用過(guò),其更詳細(xì)的功能如Options的設(shè)定請(qǐng)查閱在線幫助。

  字體對(duì)話框Font可以幫助用戶獲取各種方式的字體。使用OnApply事件,可以使得Font對(duì)話框中包含一個(gè)Apply按鈕,按動(dòng)它,對(duì)話框中設(shè)定的字體會(huì)立即應(yīng)用到指定的對(duì)象中,而對(duì)話框仍然是打開(kāi)的,這樣更便于觀察修改的結(jié)果。

  以下的例程在窗體中先放置一個(gè)按鈕Button1,調(diào)用字體對(duì)話框來(lái)改變按鈕上的Caption屬性顯示的字體:

  Procedure TForm1.Button1Click(Sender:TObject);

  begin

  FontDialog1.Execute;

  end;

  Procedure TForm1.FontDlgApply(Sender:Tobject);

  begin

  Button1.Font:= FontDialog1.Font;

  end;

  1.4.3.4 PrintDialog和PrintSetupDiaog

  打印對(duì)話框PrintDialog和打印設(shè)置對(duì)話框PrintSetupDialog可以顯示標(biāo)準(zhǔn)打印、打印設(shè)置對(duì)話框,支持打印文件和打印設(shè)置功能,設(shè)置它的Options屬性可以規(guī)定對(duì)話框的表現(xiàn)形式

  1.4.3.5 FindDialog和ReplaceDialog

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

  1.5 使用Delphi的工程管理、設(shè)計(jì)工具

  Delphi 2.0是完備的工程設(shè)計(jì)系統(tǒng),除提供了大量的可視化編程部件和簡(jiǎn)單方便的設(shè)計(jì)方法外,還備有功能強(qiáng)大的工程管理、窗口設(shè)計(jì)工具。

  1.5.1 創(chuàng)建多窗體工程項(xiàng)目

  絕大多數(shù)的應(yīng)用程序都用到不只一個(gè)窗口,Delphi允許用戶創(chuàng)建多文檔界面(MDI)應(yīng)用程序。應(yīng)用自動(dòng)創(chuàng)建窗體、窗體樣板、對(duì)話框?qū)<摇?yīng)用專家等,可以使得創(chuàng)建應(yīng)用程序更為方便快捷,而且可重復(fù)利用,大大地降低了工作量。

  1.5.1.1 創(chuàng)建一個(gè)含有About框的例程

  作為例子,我們先創(chuàng)建一個(gè)含主窗體和簡(jiǎn)單的About框的應(yīng)用程序:

  在Delphi中創(chuàng)建一個(gè)新工程,并為空窗口增加一個(gè)Button部件。我們把它作為主窗體,目的是當(dāng)按動(dòng)按鈕部件時(shí),調(diào)出About窗口。下面我們直接進(jìn)行About窗口的創(chuàng)制。

  選用主菜單的File|New項(xiàng),在New頁(yè)中,選用Form樣板,Delphi會(huì)自動(dòng)創(chuàng)建一個(gè)空窗體Form2。您可以在其上進(jìn)行About框的設(shè)計(jì),例如加入標(biāo)簽以顯示各種信息、加入圖片幫助說(shuō)明等。將Form2的BorderStyle屬性設(shè)置為bsDialog,則窗口成為運(yùn)行時(shí)不能改變大小的對(duì)話框。

  下面編程實(shí)現(xiàn)主窗體對(duì)About框的顯示控制。很可能在設(shè)計(jì)時(shí),兩個(gè)窗體出現(xiàn)重疊,F(xiàn)orm1被About遮住。用Shift+F12產(chǎn)生View Form對(duì)話框,可以選擇窗口的名字,調(diào)出所需的窗體Form1,雙擊其上的按鈕部件,在事件處理過(guò)程加入以下的程序:

  procedure TForm1.Button1Click(Sender: TObject);

  begin

  Form2.Show;

  end;

  由于Form1窗體調(diào)用About窗體,所以必須在Form1的庫(kù)單元程序中對(duì)引用About進(jìn)行說(shuō)明。在Unit1的Uses后面加入About的庫(kù)單元名Unit2。運(yùn)行程序,在主窗體上按動(dòng)按鈕,可以出現(xiàn)About框。在框外單擊鼠標(biāo),會(huì)回到主窗體中。

  在About窗體中加入一個(gè)按鈕,并將按鈕的ModalResult屬性設(shè)置為mrOK,同時(shí)將按鈕的標(biāo)簽的Caption改為OK。這樣一個(gè)有模式的About框已經(jīng)建成了。將窗體Form1中Button1的OnClick處理過(guò)程的代碼改變?nèi)缦拢?/P>

  Form2.ShowModal;

  再運(yùn)行程序,除了與上述功能相同顯示About對(duì)話框外,該程序只有當(dāng)用戶按動(dòng)About框的按鈕或被About窗控制圖標(biāo)關(guān)閉窗口后,才會(huì)回到主窗體中,而不能與第一個(gè)窗體發(fā)生交互行為。這就是方法Show和ShowModal的主要不同之處。

  1.5.1.2 指定自動(dòng)創(chuàng)建窗體

  上面我們簡(jiǎn)單地生成了一個(gè)含About框的雙窗體應(yīng)用程序,運(yùn)行時(shí),應(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)建。

  選用Project|Options,Delphi顯示Project options對(duì)話框。如果Forms不是當(dāng)前頁(yè),按動(dòng)下標(biāo)簽使之可見(jiàn)。如圖1.12所示:

  圖示為Delphi裝載的TextEdit例程(...Delphi 2.0DemosdocTextEdit.dpr)。在MainForm正文框中輸入主窗體的名字。當(dāng)應(yīng)用程序啟動(dòng)時(shí),主窗體自動(dòng)打開(kāi)并獲取輸入焦點(diǎn)。對(duì)MDI應(yīng)用,主窗體的FormStyle屬性必須設(shè)置為fsMDIForm。在Auto-created Forms列表框中列出了在啟動(dòng)時(shí)自動(dòng)創(chuàng)建的窗體,缺省時(shí)工程文件的所有窗體都在此列中。

  如果不需要自動(dòng)創(chuàng)建窗體,使用箭頭按鈕把窗體移動(dòng)到Available Forms列表框中。自動(dòng)創(chuàng)建的窗體可以用Show方法進(jìn)行顯示,而不自動(dòng)創(chuàng)建時(shí),必須編程實(shí)現(xiàn)窗體的顯示。在TextEdit工程中,定義一個(gè)TEditForm類型的變量EditForm,使用了以下的代碼顯示第二個(gè)窗體:

  Begin

  EditForm := TeditForm.Create(Self);

  EditForm.Open(OpenFileDialog.Filename);

  EditForm.Visible := True;

  End;

  也即,必須使用Create方法創(chuàng)建窗體,同時(shí)將窗體的Visible屬性設(shè)為真。

  1.5.2 使用工程管理器Project Manager

  當(dāng)窗體的數(shù)目逐步增加時(shí),跟蹤窗體以及與之相連的庫(kù)單元代碼就變得比較煩瑣。用Delphi提供的工程管理器Project Manager可以使得管理各種窗口更為方便。

  1.5.2.1 工程文件的組成

  工程(project)是整個(gè)應(yīng)用程序的源文件集合,這樣的文件一共有三種:

  1.一個(gè)包含主程序部分的工程文件,用以驅(qū)動(dòng)由Delphi創(chuàng)建的Windows程序,擴(kuò)展名為.DPR。這是在用戶的工程被裝載時(shí)就運(yùn)行的全局應(yīng)用程序文件,它的名字出現(xiàn)在Project Manager的標(biāo)題條上。工程文件一般是Delphi自動(dòng)創(chuàng)建的,用View|Project Source可以調(diào)出該工程的源文件,如果需要,可以對(duì)工程源文件進(jìn)行編輯。

  2.一個(gè)或多個(gè)窗體文件,它們含有相應(yīng)的庫(kù)單元文件。窗體文件的擴(kuò)展名是.DFM。這些文件含裝在窗體上的控制部件。在Delphi中這樣的文件是在用戶設(shè)計(jì)界面的時(shí)候由Delphi自動(dòng)生成的,而且不能編輯。在Delphi中,一個(gè)應(yīng)用程序至少需要一個(gè)窗體。

  3. Object Pascal庫(kù)庫(kù)單元文件。 它們的擴(kuò)展名為.PAS。窗體的庫(kù)單元文件包含了程序部分,用以控制窗體的行為。在一個(gè)工程中,還要包含附加庫(kù)和被應(yīng)用程序其它部分調(diào)用的支持子程序。uses子句中包含的標(biāo)準(zhǔn)庫(kù)單元文件包含了支持可視窗體及其控制的對(duì)象聲明。這些庫(kù)單元也包含了用于激活窗體的事件處理過(guò)程程序。

首頁(yè) 1 2 尾頁(yè)
本文糾錯(cuò)】【告訴好友】【打印此文】【返回頂部
將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動(dòng)訪問(wèn)考試網(wǎng) | 復(fù)制本頁(yè)地址,傳給QQ/MSN上的好友 | 申請(qǐng)鏈接 | 意見(jiàn)留言 TOP
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved
衡阳县| 田阳县| 浦城县| 曲沃县| 海宁市| 博罗县| 宁南县| 海盐县| 枣强县| 金乡县| 军事| 北安市| 盖州市| 兴国县| 柏乡县| 兴山县| 武强县| 商城县| 汝南县| 肇东市| 昌平区| 乐平市| 南阳市| 双峰县| 和平县| 枣阳市| 陇西县| 长葛市| 麦盖提县| 高尔夫| 清流县| 曲水县| 鹤岗市| 横峰县| 于田县| 中宁县| 道孚县| 天长市| 平乡县| 怀化市| 诏安县|