程序中的對話框應用(1)- ”打開“對話框


程序設計時,我們經常會需要打開或選擇計算機上的文件,這時候就可以使用TOpenDialog組件來顯示一個文件選擇對話框。

1、“打開”對話框的標題設置

對話框的標題可以讓用戶明白對話框的意圖,標題的自定義需要設置“打開”對話框的Title屬性,需要注意的是,只有ofExNoPlaceBar屬性為False才能看到對話框標題。

 

2、設置打開對話框不顯示位置欄

修改TOpenDialog的OptionEx屬性中的子屬性ofExNoPlaceBar為True,是打開的對話框沒有位置欄(位置欄指的是左側,桌面,此電腦等)。

 

3、設置打開對話框的文件類型過濾器

通過設置文件類型過濾器,我們可以根據文件類型縮小查詢范圍一邊選擇。有兩種方式.

(1)通過對象監視器中的Filter屬性進行設置

 (2)通過代碼進行設置

OpenDialog1.Filter:= '文本文件|*.txt|單元文件|*.pas';//使用|隔開
 OpenDialog1.Execute;

 

4、設置打開對話框打開時的初始文件路徑

設置InitialDir 屬性可以賦予對話框的初始文件路徑,如果沒有設置該屬性或者指定的目錄不存在,則由全局變量ForceCurrentDirectory確定初始化目錄,如果該變量為True,

對話框則在當前工作目錄處被打開,否則對話框會在當前工作目錄或者我的文檔目錄處被打開,這依賴於Windows版本。

OpenDialog1.InitialDir:='d:\';//默認打開D 盤符
OpenDialog1.Execute;

 

5、設置打開對話框可以選擇多個文件

TOpenDialog組件有個Option屬性,通過修改這個增加這個屬性中的選項,可以改變對話框的外觀跟行為。

如果需要同時選擇多個文件,需要設置Options屬性中的子屬性ofAllowMultSelect的值為True。

示例:

OpenDialog1.Options:= OpenDialog1.Options+ [ofAllowMultiSelect];//原有的options屬性加上多文件屬性
OpenDialog1.Execute;

                                      options屬性說明

     屬性            說明     
ofReadOnly 只讀復選框被選中
ofOverwritePrompt  當用戶選擇一個已存在的文件時,彈出一個警告信息框,詢問是否重寫該文件
ofhideReadOnly 隱藏“打開“對話框中的只讀復選框
ofNoChangeDir 當用戶單擊ok 按鈕后,重新設置當前路徑為選擇文件之前的路徑
ofShowHelp 在對話框中顯示”幫助“按鈕
ofNoValidate 對於”打開“對話框中選擇的文件名不進行檢查,允許非法的文件名
ofAllowMultiSelect 程序運行時用戶可以同時選擇多個文件
ofExtensionDirfferent 程序運行時,當選擇的文件擴展名與DefaultExt屬性不同時,則自動設置該標記
ofPathMustExist 當用戶選擇的文件目錄不存在時,彈出一個錯誤消息框
ofFileMustExist 當用戶選擇一個不存在的文件時,彈出一個錯誤信息框
ofCreatePrompt 當用戶選擇一個不存在的文件時,彈出一個信息框,詢問是否創建新的文件
ofShareAware 當文件共享非法時,忽略共享錯誤,允許用戶選擇文件
ofNoReadonlyReturn 當用戶選擇一個只讀文件,產生一個錯誤消息
ofnoTestFileCreate 當用戶在一個不能修改的共享網絡路徑中保存文件時,不進行網絡文件的保護,磁盤路徑,磁盤空間等檢查
ofNoNetworkbutton 在對話框中打開一個映射網絡驅動對話框時,移除”網絡“按鈕,該選項只有在Options屬性包含ofOldStyleDialog選項時才可用
ofNoLongNames 只遵循文件命名規則,該選項只有在包含ofOldStyleDialog選項時才起作用
ofOldStyleDialog ”打開“對話框采用舊的風格
ofNoDereferenceLinks 禁止放棄windows的快捷方式,當打開一個快捷方式時,賦予文件名(FileName)快捷方式的路徑和名稱,而不是快捷方式關聯的文件路徑和名稱
ofEnableIncludNotify 當用戶在對話框中打開一個文件夾時,發送CDN_INCLUDEITEM通知消息,該通知被發送到文件夾內部的每一項,該選項之應用在win2000及以后的版本
ofEnableSizing 該選項只應用在win98及之后的版本,允許資源管理器風格的對話框,通過鼠標或鍵盤調整大小,在默認情況下,”打開“對話框允許調整大小,而不考慮該選項,在用戶提供了鈎子函數或自定義模板時才需要該選項
ofDontAddToRecent 阻止文件添加到最近打開的文件列表中
ofForceShowHidden 保證隱藏文件在對話框中可見

 

(1)DefaultExt屬性 
此屬性用於指定一個默認的擴展名。如果用戶在對話框中選擇的文件沒有帶擴展名,就用這個屬性作為文件的擴展名,如果不需要默認擴展名,應當把這個屬性設為空。

(2)FileName屬性 
FileName屬性可以指定一個文件名。在打開對話框時,這個文件名出現在對話框的“文件名”框中。在對話框中,可以指定其他文件名,如果單擊“OK”按鈕,對話框將關閉,並且FileName屬性變成用戶新指定的文件名,包括文件的路徑和擴展名。FileName屬性也可以指定一個不存在的文件名,表示將打開一個新文件。

(3)FilterIndex屬性

如果有多個過濾器,這個屬性用於指定哪個過濾器是默認過濾器。默認過濾器將顯示在“打開”對話框的“文件類型”組合框的編輯框中。注意,過濾器的序號從1開始。

 

6、TOpenDialog組件的重要事件

OnCanClose----------當用戶試圖關閉對話框時將觸發這個事件 
OnFolderChange------當用戶在對話框中改變、擴展或折疊了一個目錄(也叫文件夾),將觸發該事件
OnSelectionChange---當用戶打開對話框、選擇某個目錄或文件、選擇另一個過濾器、建立一個新的目錄時將觸發這個事件 
OnShow--------------當對話框調用Execute方法、並且對話框還未顯示時觸發此事件 
OnTypeChange--------當用戶在對話框中選擇了另一個過濾器時,將發生這個事件

(1)OnCanClose事件
當用戶試圖關閉對話框時將觸發這個事件。這樣就有機會對用戶輸入的文件名進行檢查。如果文件名不符合要求,就把CanClose參數設為False,表示不允許關閉對話框。

(2)OnFolderChange事件
當用戶在對話框中改變、擴展或折疊了一個目錄(文件夾),將觸發該事件。在程序中可以利用此事件獲取用戶瀏覽過的目錄。

(3)OnSelectionChange事件
當用戶打開對話框、選擇某個目錄或文件、選擇另一個過濾器或建立一個新的目錄時將觸發這個事件。 
OnSelectionChange事件與OnFolderChange事件相比觸發的概率比較高。

(4)OnTypeChange事件
當用戶在對話框中選擇了另一個過濾器時,將觸發這個事件。在此事件中結合FilterIndex屬性的使用,可以獲取當前對話。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM