1.4.3.1 調用標準對話框
您可以發現,除了Font,Find,Replace對話框之外,其余標準對話框的Events頁都是空白的。因為它們本身是不可視的對話框形式,所以不能響應標準的鼠標鍵盤操作,只能在程序中調用它們。在本章第一節的Demo程序中,我們已經對用Color對話框有了了解,在程序的適當位置加入對話框所屬的Execute方法,可以執行標準對話框。
在編制應用程序時,您可以先設計好主菜單。在需要使用標準對話框的菜單項的事件處理過程中,調用標準對話框的Execute等方法,以滿足設計需求,即響應菜單命令彈出標準對話框。
1.4.3.2 OpenDialog和SaveDialog部件
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 ColorDialog和FontDialog
顏色對話框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 PrintDialog和PrintSetupDiaog
打印對話框PrintDialog和打印設置對話框PrintSetupDialog可以顯示標準打印、打印設置對話框,支持打印文件和打印設置功能,設置它的Options屬性可以規定對話框的表現形式
1.4.3.5 FindDialog和ReplaceDialog
FindDialog和ReplaceDialog提供了查找、替換兩個對話框部件,對于尋找和替換文本是極其有用的。在FindDialog和ReplaceDialog中都有OnFind事件,當用戶單擊尋找對話框中的Find Next按鈕時將觸發這一事件。FindText屬性中保存了用戶在Find What編輯框中輸入的文本。在ReplaceDialog中還有OnReplace事件,當用戶單擊替換對話框中的Replace和Replace All按鈕時,將觸發OnReplace事件。FindText和ReplaceText屬性分別保存了用戶在Find What和Replace 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框的設計,例如加入標簽以顯示各種信息、加入圖片幫助說明等。將Form2的BorderStyle屬性設置為bsDialog,則窗口成為運行時不能改變大小的對話框。
下面編程實現主窗體對About框的顯示控制。很可能在設計時,兩個窗體出現重疊,Form1被About遮住。用Shift+F12產生View Form對話框,可以選擇窗口的名字,調出所需的窗體Form1,雙擊其上的按鈕部件,在事件處理過程加入以下的程序:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
end;
由于Form1窗體調用About窗體,所以必須在Form1的庫單元程序中對引用About進行說明。在Unit1的Uses后面加入About的庫單元名Unit2。運行程序,在主窗體上按動按鈕,可以出現About框。在框外單擊鼠標,會回到主窗體中。
在About窗體中加入一個按鈕,并將按鈕的ModalResult屬性設置為mrOK,同時將按鈕的標簽的Caption改為OK。這樣一個有模式的About框已經建成了。將窗體Form1中Button1的onClick處理過程的代碼改變如下:
Form2.ShowModal;
再運行程序,除了與上述功能相同顯示About對話框外,該程序只有當用戶按動About框的按鈕或被About窗控制圖標關閉窗口后,才會回到主窗體中,而不能與第一個窗體發生交互行為。這就是方法Show和ShowModal的主要不同之處。 [1] [2] 下一頁
|