後一頁
前一頁
回目錄
回首頁
第一章 Delphi快速入門(五)

1.4.3.1 呼叫標準對話方塊 

         您可以發現,除了Font,Find,Replace對話方塊之外,其餘標準對話方塊的Events頁都是空白的。因為它們本身是不可視的對話方塊形式,所以不能響應標準的滑鼠鍵盤操作,只能在程式中呼叫它們。在本章第一節的Demo程式中,我們已經對用Color對話方塊有了了解,在程式的適當位置加入對話方塊所屬的Execute方法,可以執行標準對話方塊。

         在編制應用程式時,您可以先設計好主選擇表。在需要使用標準對話方塊的選擇表項的事件處理過程中,呼叫標準對話方塊的Execute等方法,以滿足設計需求,即響應選擇表命令彈出標準對話方塊。 

1.4.3.2 OpenDialogSaveDialog部件 

         OpenDialog(文件的打開)SaveDialog(存檔對話方塊)部件處理文件的打開與存儲,它們擁有完全相同的屬性欄位。DefaultExt屬性表示缺省檔案附加名。當用戶沒有輸入文件的後綴時,可以為用戶文件自動加檔案附加名。FileName屬性指定出現在FileName正文框中的缺省檔案標簽。Filter屬性提供了文件過濾器。FileEditStyle決定在輸入檔案標簽時用Edit還是Combo- Box;設定為fsComboBox時,允許使用歷史清單HistoryList屬性,這在應用程式需要經常選擇文件時,可以節約大量的時間。HistoryList屬性存檔有在File Name下拉式編輯框中顯示的檔案標簽,使用[TStrings]的省略按鈕可以編輯歷史清單。您也可以程式設計實現將HistoryList屬性設為以前用OpenDialog打開的檔案標簽歷史清單。下列程式段可以實現自動歷史檔案標簽加載: 

if OpenDialog1.Execute then

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

1.4.3.3 ColorDialogFontDialog 

      顏色對話方塊ColorDialog我們在前文的例程中已經用過,其更詳細的功能如Options的設定請查閱在線輔助敘述。

       字形對話方塊Font可以輔助敘述用戶獲取各種方式的字形。使用OnApply事件,可以使得Font對話方塊中包含一個Apply按鈕,按動它,對話方塊中設定的字形會立即應用到指定的物件中,而對話方塊仍然是打開的,這樣更便於觀察修改的結果。

        以下的例程在窗體中先放置一個按鈕Button1,呼叫字形對話方塊來改變按鈕上的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 PrintDialogPrintSetupDiaog 

       列印對話方塊PrintDialog和列印設定對話方塊PrintSetupDialog可以顯示標準列印、列印設定對話方塊,支援列印文件和列印設定功能,設定它的Options屬性可以規定對話方塊的表現形式 

1.4.3.5 FindDialogReplaceDialog 

        FindDialogReplaceDialog提供了找到、覆寫兩個對話方塊部件,對於尋找和覆寫文本是極其有用的。在FindDialogReplaceDialog中都有OnFind事件,當用戶按一下尋找對話方塊中的Find Next按鈕時將觸發這一事件。FindText屬性中存檔了用戶在Find What編輯框中輸入的文本。在ReplaceDialog中還有OnReplace事件,當用戶按一下覆寫對話方塊中的ReplaceReplace All按鈕時,將觸發OnReplace事件。FindTextReplaceText屬性分別存檔了用戶在Find WhatReplace With編輯框中輸入的文本。 

1.5 使用Delphi的工程管理、設計工具 

       Delphi 2.0是完備的工程設計系統,除提供了大量的可視化程式設計部件和簡單方便的設計方法外,還備有功能強大的工程管理、視窗設計工具。 

1.5.1 建立多窗體工程項目 

       絕大多數的應用程式都用到不只一個視窗,Delphi允許用戶建立多文檔介面(MDI)應用程式。應用自動建立窗體、窗體樣版、對話方塊專家、應用專家等,可以使得建立應用程式更為方便快捷,而且可重複利用,大大地降低了工作量。 

1.5.1.1 建立一個含有About框的例程 

     作為例子,我們先建立一個含主窗體和簡單的About框的應用程式:

     在Delphi中建立一個新工程,並為空視窗增加一個Button部件。我們把它作為主窗體,目的是當按動按鈕部件時,調出About視窗。下面我們直接進行About視窗的創制。

     選用主選擇表的File|New項,在New頁中,選用Form樣版,Delphi會自動建立一個空窗體Form2。您可以在其上進行About框的設計,例如加入標籤以顯示各種資訊、加入圖片輔助敘述敘述等。將Form2BorderStyle屬性設定為bsDialog,則視窗成為執行時不能改變大小的對話方塊。

     下面程式設計實現主窗體對About框的顯示控制。很可能在設計時,兩個窗體出現重疊,Form1About遮住。用Shift+F12產生View Form對話方塊,可以選擇視窗的名字,調出所需的窗體Form1,連續按兩下其上的按鈕部件,在事件處理過程加入以下的程式: 

procedure TForm1.Button1Click(Sender: TObject);

begin

Form2.Show;

end; 

        由於Form1窗體呼叫About窗體,所以必須在Form1的庫單元程式中對引用About進行敘述。在Unit1Uses後面加入About的庫單元名Unit2。執行程式,在主窗體上按動按鈕,可以出現About框。在框外按一下滑鼠,會回到主窗體中。

        在About窗體中加入一個按鈕,並將按鈕的ModalResult屬性設定為mrOK,同時將按鈕的標籤的Caption改為OK。這樣一個有模式的About框已經建成了。將窗體Form1Button1OnClick處理過程的代碼改變如下: 

Form2.ShowModal;  

       再執行程式,除了與上述功能相同顯示About對話方塊外,該程式只有當用戶按動About框的按鈕或被About窗控制圖示關閉視窗後,才會回到主窗體中,而不能與第一個窗體發生互動行為。這就是方法ShowShowModal的主要不同之處。 

1.5.1.2 指定自動建立窗體 

      上面我們簡單地產生了一個含About框的雙窗體應用程式,執行時,應用程式啟動時將自動建立第二個窗體。窗體保持隱蔽狀態,但仍然佔用Windows的資源。在大型應用程式中,有時不希望在應用程式加載時自動建立所有窗體。Delphi可以指定哪些窗體被自動建立。

       選用Project|OptionsDelphi顯示Project options對話方塊。如果Forms不是目前頁,按動下標籤使之可見。如圖1.12所示:

       圖示為Delphi裝載的TextEdit例程(...\Delphi 2.0\Demos\doc\TextEdit.dpr)。在MainForm正文框中輸入主窗體的名字。當應用程式啟動時,主窗體自動打開並獲取輸入焦點。對MDI應用,主窗體的FormStyle屬性必須設定為fsMDIForm。在Auto-created Forms列示方塊中列出了在啟動時自動建立的窗體,缺省時工程文件的所有窗體都在此列中。

       如果不需要自動建立窗體,使用箭頭按鈕把窗體移動到Available Forms列示方塊中。自動建立的窗體可以用Show方法進行顯示,而不自動建立時,必須程式設計實現窗體的顯示。在TextEdit工程中,定義一個TEditForm型式的變數EditForm,使用了以下的代碼顯示第二個窗體:

Begin

EditForm := TeditForm.Create(Self);

EditForm.Open(OpenFileDialog.Filename);

EditForm.Visible := True;

End;

也即,必須使用Create方法建立窗體,同時將窗體的Visible屬性設為真。 

1.5.2 使用工程管理器Project Manager 

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

1.5.2.1 工程文件的群群組成 

        工程(project)是整個應用程式的源文件集合,這樣的文件一共有三種:

        1.一個包含主程式部分的工程文件,用以驅動由Delphi建立的Windows程式,檔案附加名為.DPR。這是在用戶的工程被裝載時就執行的全局應用程式文件,它的名字出現在Project Manager的標題條上。工程文件一般是Delphi自動建立的,用View|Project Source可以調出該工程的源文件,如果需要,可以對工程源文件進行編輯。

        2.一個或多個窗體文件,它們含有相應的庫單元文件。窗體文件的檔案附加名是.DFM。這些文件含裝在窗體上的控制部件。在Delphi中這樣的文件是在用戶設計介面的時候由Delphi自動產生的,而且不能編輯。在Delphi中,一個應用程式至少需要一個窗體。

         3. Object Pascal庫庫單元文件。 它們的檔案附加名為.PAS。窗體的庫單元文件包含了程式部分,用以控制窗體的行為。在一個工程中,還要包含附加庫和被應用程式其它部分呼叫的支援子程式。uses子句中包含的標準庫單元文件包含了支援可視窗體及其控制的物件聲明。這些庫單元也包含了用於激活窗體的事件處理過程程式。 

1.5.2.2 使用Project Manager進行工程管理 

        選用View|Project Manager,會調出Project Manager視窗。

        Project Manager主體部分列出了庫單元以及相關聯的窗體的路徑,當庫單元和工程在同一目錄下時,路徑不再顯示。Project Manager包含了應用程式的所有源文件和視窗。並不是每一個庫單元都擁有一個相關聯的窗體。Project Manager可以作為工程的一個簡捷目錄。在列出的任何一個窗體或庫單元上連續按兩下滑鼠左鍵,Delphi就會產生此物件的代碼編輯器。

        Project Manager 視窗上有增加、解除物件以及查看物件的加速按鈕。Options加速鍵能夠打開前文所述的Project Options對話方塊。如果在Project Manager打開時編輯了工程各文件的源代碼,可按一下Update加速條按鈕刷新物件清單。 

1.5.3 使用窗體樣版和對話方塊專家 

        在前文的例程中,我們建立了一個簡單的About框。在很多應用程式中,都會用到這種進行資訊提示或表示版本資訊的對話方塊。Delphi的設計思想是軟體可重用,所以系統phi已經載入了一些用戶可重複應用的窗體樣版。使用窗體樣版,可以簡單地產生各種對話方塊,節省了大量的重複工作。 

1.5.3.1 使用窗體樣版建立窗體 

        建立一個新工程時,Delphi為用戶建立了一個新的空窗體。如果需要使用一個窗體樣版,向工程中增加一個窗體。選用File|NewDelphi即會顯示New Items對話方塊。在Forms頁上,從樣版庫中選擇中意的新窗體增加到工程中。例如,Delphi提供了About Box樣版。如果選擇它,About對話方塊就增加到工程中,用戶只需加入自己的各種資訊即可,這樣就簡化了工作。同樣,要建立一個對話方塊視窗,在Dialogs頁上,選用所需的對話方塊樣版,可以簡便地建立起所需的對話方塊視窗。

1.5.3.2 存儲自己的窗體樣版 

        您可以在樣版庫中存儲自己的窗體樣版。首先創制一個窗體的樣本,在窗體區欄位中按一下滑鼠的右鍵,可以調出窗體的加速選擇表。選用Add To Repository...,將彈出對話方塊。

       在Forms列示方塊中,選擇想要建立為樣版的窗體。在Title輸入框中輸入想要在樣本庫內圖示下出現的文本。在Description區,輸入關於樣版的詳細敘述。這樣在瀏覽樣本庫時,在狀態行上會顯示這段文字以進行提示。可以選擇一個圖示作為新窗體樣版的圖示,按動Browse按鈕,選擇一個現有圖示來代表新的窗體樣版。否則將使用按鈕左方的缺省窗體圖示。按OK按鈕,Delphi會要求您確認將窗體存儲為樣版。

       再次打開New Items對話方塊,您會發現您的窗體已經被存儲成一個窗體樣版。 

1.5.3.3 使用對話方塊專家Dialog Expert 

       對話方塊樣版呈現了友好介面的被存檔對話方塊,而對話方塊專家卻能根據用戶提供的資訊,智能地建立複雜的對話方塊。

       選用File|New...,在New|ItemsDialog頁選用Dialogs ExpertDelphi將提示回答各種問題,以便於建立複雜的對話方塊。

1.5.4 使用工程樣版和應用專家 

        Delphi的工程樣版提供預先設計的工程來作為應用程式開發的起點。而應用專家則允許用戶按照一定的模式來建立一個應用程式。 

1.5.4.1 使用工程樣版 

        當您通過一個工程樣版來開始一個工程時,除了空白工程樣版外,都會被要求指定一個唯一的子目錄即工程目錄Project Directory,用來存儲新的工程。如果您指定一個不存在的目錄,Delphi會輔助敘述您產生它。您可以通過加入新的窗體和程式庫單元來修改它,或不加修改地直接利用,而只是加入您的事件處理過程。無論您如何修改,您所作的修改只影響到打開的工程,原先的工程樣版不會受到影響,可再次被利用。

         選用File|New,在New Items對話方塊中選用Projects頁,可以選擇將MDISDIWindows 95 Logo等應用程式作為缺省的工程型式,點動所需工程的圖示,使之高光度顯示,然後按OK按鈕。如圖1.17所示。在接下來的Select Dictionary對話方塊中指定一個用來包含新的工程文件的目錄,則一個工程樣版的副本在指定的目錄中打開。

1.5.4.2 使用應用專家Application Expert 

        一個應用專家就是一個應用程式,它會依照您在一系列對話方塊中所設定的選項值來產生一個工程。

        如果您想在打開一個工程時,利用應用專家來取代工程樣版而成為缺省值,則使用File|New,在New ItemsProjects頁上選用Applcation Expert。這樣,連續按兩下它的圖示,會彈出一系列對話方塊提問,要求您選擇您的工程是否需要一個標準的Windows 95對話方塊、含有哪些選擇表、加速條等。圖1.18是使用應用專家後出現的第一個對話方塊。

Delphi 會要求您輸入您的工程檔案標簽及它存儲的唯一目錄,並提示您選擇應用程式是否使用MDI視窗、是否含有狀態行、提示等。選項設定完畢,按動Finish按鈕,Application Expert即按照您的要求,建立起一個可以直接執行的工程文件。


後一頁
前一頁
回目錄
回首頁