Presentation is loading. Please wait.

Presentation is loading. Please wait.

第九章 各種對話方塊的建立 視窗介面可以說是最友善的人和電腦間的溝通介面,然而對話方塊就好像是電腦和使用者之間的對話通道。開檔案有開檔案的方式、存檔有存檔的介面、印表機設定、字型選擇、尋找字串、置換字串等等,在Win32的環境中,這類的對話方塊實在是太多了。在這一章我們將帶領大家進入設計對話方塊的世界。

Similar presentations


Presentation on theme: "第九章 各種對話方塊的建立 視窗介面可以說是最友善的人和電腦間的溝通介面,然而對話方塊就好像是電腦和使用者之間的對話通道。開檔案有開檔案的方式、存檔有存檔的介面、印表機設定、字型選擇、尋找字串、置換字串等等,在Win32的環境中,這類的對話方塊實在是太多了。在這一章我們將帶領大家進入設計對話方塊的世界。"— Presentation transcript:

1 第九章 各種對話方塊的建立 視窗介面可以說是最友善的人和電腦間的溝通介面,然而對話方塊就好像是電腦和使用者之間的對話通道。開檔案有開檔案的方式、存檔有存檔的介面、印表機設定、字型選擇、尋找字串、置換字串等等,在Win32的環境中,這類的對話方塊實在是太多了。在這一章我們將帶領大家進入設計對話方塊的世界。

2 大綱 9-1 Open / Save Dialog 9-2 Open / Save PictureDialog 9-3 FontDialog
9-4 ColorDialog 9-5 PrinterDialog 9-6 PrinterSetupDialog 9-7 FindDialog 9-8 ReplaceDialog 9-9 對話訊息框的使用 本章習題

3 9-1 Open / Save Dialog 在視窗作業系統中,當使用者需要對某個檔案作開啟或關閉的動作時,通常需要透過檔案處理對話方塊來對檔案作處理,所以所謂的對話方塊,就是應用程式和使用者之間的交談介面;一個設計優良的對話方塊,會讓使用者相當容易上手。下圖是檔案開啟的對話方塊。

4 Open / Save Dialog實作 上圖的畫面是一般在視窗系統下開啟檔案的對話方塊,我們可以看到中間主畫面是可選取的圖示區,上方是目前目錄名稱以及一些目錄基本功能,下方則是選取檔案名稱和檔案格式。這些功能我們都可以用BCB所提供的OpenDialog元件一手包辦實作,唯一需要我們自己設定的只有檔案格式過濾以及預設的開啟路徑。OpenDialog元件常見的屬性如下: 屬性(Properties) 型態原型 說明 DefaultExt AnsiString 預設檔案延伸檔名 FileName 讀入檔案路徑及名稱 Filter 指定檔案型態過濾方式 Option Set 對話方塊功能的設定 Title 對話方塊標題的設定

5 Open / Save Dialog實作 當我們建立一個OpenDialog元件時,在該元件的屬性裡有一個Filter項目,這是提供設定檔案格式屬性的過濾方式,設定該屬性可以讓對話方塊在使用時擋掉不需出現的格式的檔案,其欄位功用說明如下:Filter Name欄位填入顯示文字,而Filter欄位填入檔案格式,如果檔案格式超過一個的話就用分號分開,一般在設定Filter時我們會加入一個顯示所有檔案的欄位以提供對話方塊瀏覽時可以看到所有的檔案。 Filter設定視窗

6 9-2 Open / Save PictureDialog
OpenPictureDialog元件提供了圖檔預覽的功能,相當適合影像處理類的軟體;目前提供的預覽格式有JPEG、BMP、ICO檔案等圖形檔案格式。當然,BCB也提供了儲存圖檔的對話盒SavePictureDialog元件來做圖檔儲存。

7 Open / Save PictureDialog屬性介紹
我們可以由上圖看到和OpenDialog最大不同的地方,就是右邊有個預覽區域,可以顯示目前反白的圖檔內容,這個預覽區只有在被點選的檔案是屬於被支援的圖檔類型才有效。至於其他的部分,外觀和功能都和OpenDialog差不多。OpenPictureDialog元件常見的屬性如下: 屬性(Properties) 型態原型 說明 DefaultExt AnsiString 預設檔案延伸檔名 FileName 讀入檔案路徑及名稱 Filter 指定檔案型態過濾方式 Option Set 對話方塊功能的設定 Title 對話方塊標題的設定

8 9-3 FontDialog 一個功能齊全的文書編輯軟體,需要提供字型的調整功能。BCB為了方便程式開發者在設計此功能時的效率,提供了FontDialog元件,其更改字型的對話視窗可讓使用者以直覺的方式來更改字型。右圖為字型對話盒。 更改字型設定對話盒

9 FontDialog 屬性介紹 BCB有很多元件都含有Font屬性,尤其是跟文字編輯相關的元件。但是字型的設定往往都是相當的繁瑣,如改變字體的類別、格式、大小、顏色等等。如果是在程式執行的時候去修正改變,則對使用者而言將會是很痛苦的事情。所以FontDialog就解決了這個問題,BCB中的FontDialog元件的重要屬性列表如下: 屬性(Properties) 型態原型 說明 Device TFontDialogDevice 設定字型來源 Font TFont 使用者選定之字型 MaxFontSize int 字型大小之最大值 MinFontSize 字型大小之最小值 Option Set 對話方塊的功能設定

10 9-4 ColorDialog 在視窗應用程式中,常常會有編輯軟體可以選擇圖形或文字的顏色,選擇顏色的方式通常是一個色彩對話方塊,如右圖所示。BCB的所提供的色彩對話方塊元件是ColorDialog,我們可以指定所需改變的顏色為對話方塊所選取的顏色作為編輯的動作。ColorDialog最主要的屬性就是Color,當開啟對話方塊後所選擇的顏色將會被設定在Color屬性。 基本更改顏色設定對話盒

11 ColorDialog設定說明 在上圖我們可以看到上半部是屬於Basic colors的部分,這是系統提供的基本顏色,總共有56種。在一般的選色情況下,這些系統提供的基本顏色就可以了。但是我們也可以自訂一些自己想要的顏色,下面還有16個Custom Colors的欄位,讓我們使用者可以自定顏色,而設定顏色的方式,就是依照基本色加上RGB色的調整。 自訂色彩設定畫面

12 9-5 PrinterDialog PrinterDialog主要功用在於提供設定列印版面,即設定列印的相關參數,下圖是PrinterDialog對話方塊的顯示介面。使用者可以設定列印範圍對應到PrintRange屬性,列印數量對應到Copies屬性,加入自動分頁功能對應到Collate屬性,在Options屬性裡又有提供很多參數可以讓我們自行設定,比如說設定列印頁面,是否列印到檔案等等。 列印設定畫面

13 PrinterDialog屬性介紹 以下為PrinterDialog屬性的介紹及說明:
Copies屬性:型態為int,此屬性為設定列印份數。 FormPage屬性:型態為int,此屬性是設定列印的起始頁,也就是說如果設定值為1的話,列印時會從第1頁開始列印。 ToPage屬性:型態為int,此屬性是設定列印的最末頁,也就是說如果設定值為5的話,列印時會從起始頁開始列印到第5頁。 MinPage屬性:型態為int,此屬性是設定列印的最小頁數,當使用者輸入的列印設定裡如果列印頁數小於該屬性的值,則程式就會發出錯誤訊息。 MaxPage屬性:型態為int,此屬性是設定列印的最大頁數,和MinPage剛好相反,當使用者輸入的列印設定裡如果列印頁數大於該屬性的設定值值,則程式就會發出錯誤訊息。 PrintRange屬性:PrintRange屬性有三種設定值:prAllPages,prPageNums,prSelection。當使用者選擇Range時,程式員可以從FromPage和ToPage裡讀出真正要列印的範圍。 PrintToFile屬性:型態為布林變數,此屬性的設定決定是否將列印的結果列印成為檔案,預設值為否。 Options屬性:這是一個Set屬性,該Set裡又有包含很多布林型態屬性,也都是作列印的設定。

14 9-6 PrinterSetupDialog PrinterSetupDialog主要是用來做印表機的設定,這包含了印表機選擇、紙張格式設定、送紙方式、以及列印方向等等,下圖就是一個PrintSetupDialog所顯示的對話方塊。 印表機設定畫面

15 9-7 FindDialog Find是幫助使用者搜尋文件裡的字串,常見的有文書編輯軟體、網頁瀏覽器等需要顯示大量文字時,這個功能就是不可或缺的了。BCB所提供的FindDialog就是幫助程式開發者在需要程式加入此功能時可以直接套用,FindDialog的重要屬性如下: 屬性(Properties) 型態原型 說明 FindText AnsiString 搜尋的字串 Option Set 對話方塊的功能設定 Position Tpoint 搜尋起始位置

16 9-8 ReplaceDialog 我們需要大量的修改某一特定字串成為另一個特定字串時,有的人會每次先Find出來再去修改,這種修改方式在修改數量不大時還可以這樣使用,但是如果修改的字串數量相當多,那麼這種方式就很沒有效率。所以在一些文字編輯軟體中,除了搜尋的功能外,一般都還會有一個類似叫取代的功能。BCB提供了另一個對話方塊元件ReplaceDialog,可以讓我們大量的搜尋和修改。一般視窗Replace對話方塊如下圖。

17 9-8 ReplaceDialog 上圖中分別顯示兩個輸入欄位,第一為要搜尋的字串,另一個為要更改成的字串。如圖中所示,可以點選Find Next搜尋下一個”I love Sally”字串,確定要更改再點選Replace。如點選Replace All,則所有的”I love Sally”字串將會被改成”I love Sally and Jimmy”。ReplaceDialog使用方式其實和FindDialog差不多,ReplaceDialog的重要屬性如下: 屬性(Properties) 型態原型 說明 FindText AnsiString 搜尋的字串 Option Set 對話方塊的功能設定 Position Tpoint 搜尋起始位置 ReplaceText 更改後的字串

18 9-9 對話訊息框的使用- MessageBox
在很多情況下,我們需要給使用者一些訊息,這些訊息可能是一個提示、一個疑問、一個警告,甚置是一個錯誤。這些訊息我們習慣用一個對話方塊來表達,而在這個對話方塊中可能會有幾個按鈕、一個圖示,以及一句訊息。別以為為了這個對話框我們又要在新增一的Form、拖曳出按鈕、貼上圖示,C++ Builder有一個MessageBox()函式,能夠產生一個對話框,這個函式的格式如下: int MessageBox(const char * Text, const char * Caption, int Flags);

19 MessageBox說明 其中Text就是我們要在對話框中顯示的字串,Caption是這個對話框的標題,Flag是這個對話框的格式,我們來看看Flag的用法: 數值 功能 0(MB_OK) 對話框包含OK按鈕 1(MB_OKCANCEL) 對話框包含OK、CANCEL按鈕 2(MB_ ABORTRETRYIGNORE) 對話框包含ABORT、RETRY、IGNORE按鈕 3(MB_YESNOCANCEL) 對話框包含YES、NO、CANCEL按鈕 4(MB_YESNO) 對話框包含YES、NO按鈕 5(MB_RETRYCANCEL) 對話框包含RETRY 、CANCEL按鈕 16 對話框包含錯誤警告圖示 32 對話框包含疑問圖示 48 對話框包含警告圖示1 64 對話框包含警告圖示2 將第一個按鈕設為預設 256 將第二按鈕設為預設 514 將第三按鈕設為預設

20 9-9 對話訊息框的使用- InputBox 9-9-2:InputBox
另一種對話方塊 InputBox和MessageBox很像,只是它沒有圖示,按鈕也是預設的,而且它多了一個Edit元件。它的函式格式也和MessageBox很像: AnsiString InputBox(const AnsiString ACaption, const AnsiString APrompt, const AnsiString ADefault); 其中ACaption變數為標題,APrompt為提示訊息,ADefault為預設值,當使用者輸入資料並按下OK後,InputBox函式便會傳回資料。

21 9-9 對話訊息框的使用- ShowBox 9-9-3:ShowBox ShowBox函式格式如下:
void ShowMessage(const AnsiString Msg); 這個對話框只有一個參數Msg,就是對話框中的訊息,當使用者按下OK後,程式就會繼續執行,並不會有所影響。 ShowBox畫面

22 本章習題 將本章第五節裡所提到的小記事本範例,請將其功能建構完整。 設計一個圖片檔案瀏覽程式,能夠把同一目錄下的圖檔用縮小圖形預覽。
利用對話訊息框,設計一個備忘錄紀錄和查詢的系統。


Download ppt "第九章 各種對話方塊的建立 視窗介面可以說是最友善的人和電腦間的溝通介面,然而對話方塊就好像是電腦和使用者之間的對話通道。開檔案有開檔案的方式、存檔有存檔的介面、印表機設定、字型選擇、尋找字串、置換字串等等,在Win32的環境中,這類的對話方塊實在是太多了。在這一章我們將帶領大家進入設計對話方塊的世界。"

Similar presentations


Ads by Google