運(yùn)用VisualFoxPro地CommonDialogs控件

字號(hào):

如果你用過 FoxPro GETFILE() 和 PUTFILE() 函數(shù)。你可能對(duì)它們多少有些遺憾:
    沒有辦法改變對(duì)話框的標(biāo)題。
    PUTFILE() 函數(shù)總是詢問用戶是否想復(fù)蓋已存在的文件。
    使用兩個(gè)函數(shù)時(shí)。指定的路徑必須存在,否則將顯示一條錯(cuò)誤信息。
    為了得到更大的靈活性。你需要使用隨 VFP 5 同時(shí)發(fā)布的 Common Dialogs 控件(在 WINDOWSSYSTEM 目錄下的 COMDLG32.OCX 中)。該控件稱為 "Common dialogs" 是因?yàn)樗梢燥@示文件。顏色。字體和打印對(duì)話框。所有這些對(duì)話框提供了比 VFP 的相同功能更大的靈活性。例如。當(dāng)在 VFP 中使用 GETFONT() 和 GETCOLOR() 函數(shù)時(shí)??荚?大提示你控制不了所有的東西,如非 TrueType 字體是否可用或用戶是否可自定義顏色。Common Dialog 中的字體和顏色對(duì)話框就有這種功能。
    由于時(shí)間限制。在本章中我們只集中討論文件對(duì)話框。如果你想知道關(guān)于顏色,字體和打印對(duì)話框的更多信息。請(qǐng)參閱 ActiveX 控件的幫助文件。注意 Common Dialogs 控件沒有出現(xiàn)在幫助文件的目錄頁中。但可以在選定控件后按下 F1 鍵或在幫助索引中搜索 "Common Dialog" 來找到它們。
    方法
    Common Dialogs 控件有五個(gè)方法,它們都沒有參數(shù):
    ShowOpen() 顯示打開文件對(duì)話框;
    ShowSave() 顯示保存文件對(duì)話框;
    ShowPrinter() 顯示打印機(jī)對(duì)話框;
    ShowFont() 顯示字體對(duì)話框;
    ShowColor() 顯示顏色對(duì)話框。
    在本章中我們只使用了前兩個(gè)方法。
    屬性
    以下是最常用的 Common Dialogs 控件的文件對(duì)話框的屬性 (一些屬性也用于字體,顏色和打印機(jī)對(duì)話框);其它較少使用的屬性的信息參見它們的幫助文件:
    CancelError:如果想在用戶選擇取消時(shí)生成一個(gè)錯(cuò)誤(錯(cuò)誤號(hào)1429),設(shè)置該屬性為 .T.??梢栽诳丶?Error 方法中溫和地捕捉并處理錯(cuò)誤。這是必須的,因?yàn)樵陬愃频?VFP 函數(shù)返回一個(gè)特殊值時(shí)(通常是一個(gè)空格) 來指明用戶選擇了取消,但這些對(duì)話框不會(huì)返回值。
    DefaultExt:如果用戶沒有輸入擴(kuò)展名,該擴(kuò)展名自動(dòng)添加到用戶輸入的文件名后面。
    DialogTitle:對(duì)話框窗口標(biāo)題。
    FileName:用于文件名的初值,添加它的內(nèi)容到從對(duì)話框返回的用戶輸入值上。如果不允許選擇多個(gè)文件,或雖允許但用戶只選擇了一個(gè)文件,F(xiàn)ileName 包含了選定文件的完整的路徑和文件名。如果允許選擇多個(gè)文件且用戶選擇了一個(gè)以上的文件,F(xiàn)ileName 在選定文件列表前,含有以分隔符與選定文件分開的,選定文件的路徑(多個(gè)文件之間以分隔符分開,但不帶路徑)。在 Windows 95 和 NT 4 中分隔符是CHR(0),在 Windows NT 3.51 中分隔符是一個(gè)空格。例如,如果用戶從 VFP 的示例數(shù)據(jù)目錄中選擇了三個(gè)表,F(xiàn)ileName 的內(nèi)容可能是 C:VFP5SAMPLESDATA <分隔符> CUSTOMER.DBF <分隔符> ORDERS.DBF <分隔符> ORD99vEMS.DBF"。關(guān)于分解 FileName 為路徑和不同的文件名,請(qǐng)參見 SFFileDialog 類的 SetProperties() 方法(稍后講述)。
    FileTitle:若不允許選擇多個(gè)文件,返回不含路徑的選定文件的名字.否則返回值為空。
    Filter:可接受文件說明。Filter 有兩個(gè)部分:用戶所見到的說明(如,"數(shù)據(jù)庫文件") 和這些文件的擴(kuò)展名描述(如 "*.DBC")。說明和描述以豎線( | )分開??梢杂枚鄠€(gè)豎線分隔的方式提供一個(gè)以上的 filter。如,"數(shù)據(jù)庫文件 | *.DBC | 表 | *.DBF | 全部文件 | *.*"。
    FilterIndex:使用的默認(rèn) filter 。第一個(gè) Filter 屬性是 1。
    Flags:該屬性控制對(duì)話框的外觀和行為??墒褂玫闹狄姾?。
    HelpFile:當(dāng)用戶單擊對(duì)話框中的幫助按鈕時(shí)使用的幫助文件的名字。
    HelpCommand:該屬性的最常用設(shè)置是(其它設(shè)置參見該控件的幫助文件) 0x1 (使用 HelpContextID),0x101 (使用關(guān)鍵字),或 0x105 (使用部分關(guān)鍵字)。注意:0x 符號(hào),是 VFP 5 的新功能,指明一個(gè)十六進(jìn)制值。
    HelpContext:當(dāng) HelpCommand 的值設(shè)置為 0x1 時(shí),要顯示的幫助文件中的主題的 HelpContextID。
    HelpKey:當(dāng) HelpCommand 的值設(shè)置為 0x101 或 0x105 時(shí),要在幫助文件中查找的關(guān)鍵字。
    InitDir:對(duì)話框要顯示的初始目錄。
    注意幫助中提到了另外兩個(gè)屬性,Path 和 Drive,但它們并不存在。