公用對話框在構件板的Dialogs標簽中,這些構件不是可視構件,因為沒有圖形設計接口。下面幾節介紹這些公用對話框,但Print和Printer Setup對話框要留到后面介紹打印時再介紹。 8.8.1Execute方法公用對話框的一個共同之處是都有Execute方法,用于生成和顯示對話框。Find和Replace對話框是無模態對話框,其余都是模態對話框。用戶單擊OK按鈕、雙擊文件名(對于文件對話框)或按鍵盤上的Enter鍵時,Execute方法返回true。用戶單擊Cancel按鈕、按Esc鍵或用系統關閉框關閉對話框時,Execute方法返回false。公用對話框通常實現如下:if(OpenDialog>Execute()) { // user pressed OK so use the filenameMemo>Lines>LoadFromFile(OpenDialog>FileName);}return;這個代碼顯示File Open對話框并向用戶請求文件名。假如用戶單擊OK按鈕,則執行if塊內的代碼,文件裝入Memo構件。假如不按OK按鈕,則忽略if塊內的代碼,不發生動作。說明 上例中的代碼是C++快捷語法的又一個例子。第一行:if(OpenDialog>Execute()) {等于if(OpenDialog>Execute() == true) {兩種方法都可以,但第一種更好。
Options屬性Options屬性控制使用文件對話框的方法。選項很多,最常見的有是否答應生成新文件或目錄、對話框中是否顯示Help按鈕、是否答應長文件名、是否答應選擇多個文件,等等。詳見C++ Builder中關于OpenDialog和SaveDialog構件的聯機幫助。Title屬性Title屬性設置或讀取文件對話框的標題。不指定標題時,OpenDialog缺省用Open,SaveDialog構件缺省用Save。提示 Save As對話框就是Title屬性設置為Save As的SaveDialog構件。文件對話框沒有相關聯的事件。提示 也可以不放OpenDialog構件到窗體上而在運行時實現File Open對話框或其它公用對話框。為此,生成TOpenDialog類的實例,然后調用Exeate方法:TOpenDialog* openDlg = new TOpenDialog(this);if (openDlg>Execute()) {// do something here}delete openDlg;假如需要,還可以在調用Execute之前設置OpenDialog構件的屬性。
File Open Picture和File Save Picture對話框這兩個對話框是在File Open和File Save對話框中增加了一個特性,用預覽窗口顯示當前所選的圖形。這些對話框也有Filter屬性,預設成常用Windows圖形格式,此外,它們與File Open和File Save對話框完全一樣。 Color對話框Color對話框可以用于選擇顏色。單擊OK按鈕時,Color屬性會包含顏色信息。Color對話框和文件對話框一樣,沒有要響應的事件。