1. 程式人生 > >Delphi的打開文件對話框-TOpenDialog

Delphi的打開文件對話框-TOpenDialog

str 必須 cut 另存為 用法 組合 擴展 har init

1.TOpenDialog組件的典型用法

“打開”對話框是用TOpenDialog組件實現的,TOpenDialog組件是非可視組件。
Filter屬性用於設置文件過濾器,讓對話框只列出特定類型的文件。在設計時可以單擊Filter屬性旁的省略號“.”按鈕,打開“Filter.Editor”對話框,在“Filter.Name”欄鍵入關於過濾器的簡短說明,在“Filter”欄鍵入通配符,在設計期,把“打開”對話框組件加到窗體上,看到的是TOpenDialog組件的圖標,只有調用對話框的Execute方法,才能在運行期看到真正的對話框。

2.TOpenDialog組件的重要屬性

DefaultExt-------------此屬性用於指定一個默認的擴展名
FileName---------------此屬性用於指定一個文件名
Files------------------通過此屬性可以訪問多個文件
Filter-----------------此屬性用於設置文件過濾器
FilterIndex------------此屬性用於指定哪個過濾器是默認過濾器
InitialDir-------------設置此屬性可以指定另外一個目錄
Options----------------此屬性用於設置“打開”對話框的選項

Title------------------此屬性用於設置對話框的標題

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

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

(3)Files屬性
如果Options屬性包含ofAllowMultiSelect元素,表示允許一次選擇多個文件,這些文件可以通過Files屬性訪問。Files屬性是一個TStrings對象。

(4)Filter屬性
此屬性用於設置文件過濾器,讓對話框只列出特定類型的文件。在設計時,可以單擊 Filter屬性旁的“...”按鈕,打開“Filter Editor”對話框,在“Filter Name”欄鍵入關於過濾器的簡短說明,在“Filter”欄鍵入通配符,例如通配符“*.txt”表示讓對話框只顯示擴展名為.txt的文件。當然,用戶可以在“打開”對話框的“文件名”框內直接輸入一個擴展名不為 .txt文件名的文件。同時,Filter屬性可以設置多個過濾器,這些過濾器將顯示在“打開”對話框的“文件類型”組合框內。

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

(6)InitialDir屬性
此屬性用於設置打開對話框第1次打開時的默認打開目錄。例如要將打開對話框的默認打開目錄設置為C盤根目錄,就可以將InitialDir屬性設置為“C:\”。

(7)Options屬性
此屬性用於設置“打開”對話框的選項。它設定了如下16個用戶可選值。
. ofAllowMultiSelect:用戶可以一次選擇多個文件。
. ofCreatePrompt:如果用戶輸入的文件名是不存在的,當用戶單擊“OK”按鈕時,將顯示一個提示框,詢問要不要建立這個文件。
. ofExtensionDifferent:如果用戶所選文件的擴展名與DefaultExt屬性設置的默認擴展名不同,就包含這個元素。
. ofFileMustExist:用戶輸入的文件名必須是已存在的。
. ofHideReadOnly:對話框中不顯示“以只讀方式打開”復選框。
. ofNoChangeDir:即使用戶在對話框中選擇了其他目錄,但對程序來說,當前目錄總是對話框第一次打開時的目錄。
. ofNoDereferenceLinks:如果用戶選擇的是快捷方式文件(.lnk),FileName屬性是快捷方式文件本身,而不是快捷文件指向的文件。
. ofNoLongNames:不允許長文件名。
. ofNoReadOnlyReturn:不允許用戶選擇只讀的文件,否則將顯示一個警告框。
. ofNoTestFileCreate:保存文件時不進行寫保護、磁盤滿、驅動器門打開等檢查。
. ofNoValidate:不對文件名中的字符進行合法性檢查。
. ofOverwritePrompt:用於“另存為”對話框中,如果用戶指定的文件名已存在,將顯示一個警告框用來讓用戶選擇是否要覆蓋已有的文件。
. ofPathMustExist:用戶輸入的路徑必須是已經存在的,否則將顯示警告。
. ofReadOnly:選中“以只讀方式打開”復選框。
. ofShareAware:對話框不理會所有的共享錯誤。
. ofShowHelp:對話框中將顯示“幫助”按鈕。

(8)Title屬性
此屬性用於設置對話框顯示時的窗口標題。例如大多數據庫程序都有還原數據庫功能,其打開對話框的標題就可以設置為“打開還原文件”。

3.TOpenDialog組件的重要事件

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

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

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

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

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

4.TOpenDialog組件的重要方法

TOpenDialog組件最重要的方法就是Execute方法。此方法能夠顯示對話框,以供用戶設置文件路徑及文件名。其使用方法如下:
OpenDialog1.Execute;

Delphi的打開文件對話框-TOpenDialog