Visual FoxPro 的 .vcx 可視類庫位于 \Ffc\ 文件夾,包含了各種基本類,使用這些基本類可以不通過編程或較少的編程即能改進 Visual FoxPro 應(yīng)用程序。用戶可以自由地將基本類和其應(yīng)用程序一起發(fā)布。這些基本類包含在“組件管理庫”中。“組件管理庫”提供了了解每個基本類的屬性、事件和方法程序的快速和簡便方法。也可以在“類設(shè)計器”或“類瀏覽器”中打開一個基本類,查看其結(jié)構(gòu)和代碼。這是一種極好的方法,不但可以更深入理解 Visual FoxPro 編程,還可以理解基本類的工作機理。 以下內(nèi)容可指導(dǎo)用戶如何將 Visual FoxPro 基本類添加到應(yīng)用程序中。 類的類型在將一個基本類添加到應(yīng)用程序之前,用戶需要了解該基本類的 Visual FoxPro 基類。某些基本類只能在表單上用作可視對象,而其他基本類是非可視的,可以通過編程運行,而不必放在表單上。Visual FoxPro 基本類文檔描述了每個基本類的基類,用戶可以用來確定某個基本類是否可以添加到表單上、或在應(yīng)用程序中通過編程運行。請注意,在“組件管理庫”中,可以在一個基本類上單擊鼠標(biāo)右鍵來顯示一個快捷菜單,然后從快捷菜單中選取“屬性”命令,并選取“類”選項卡顯示這個基類。 下表列出了 Visual FoxPro 的基類,并說明如何將其添加到用戶應(yīng)用程序中。
將基本類添加到表單中通常用戶需要經(jīng)常將基本類添加到表單中??梢詮?#8220;組件管理庫”、“類瀏覽器”、“項目管理器”和表單控件工具欄將基本類拖動到表單上。 注釋 可以選中一個已經(jīng)添加到表單上的基本類,然后從“工具”菜單中選擇“類瀏覽器”命令來顯示該基本類的詳細信息。 組件管理庫 – “組件管理庫”提供了將基本類添加到表單的最簡便的方法。對于種類為 A 和 B 的基類,用戶可以從“組件管理庫”拖動基本類,然后將其放落到表單上。在“組件管理庫”中,也可以在一個基本類上單擊鼠標(biāo)右鍵顯示一個快捷菜單,然后選擇“添加至表單”命令,將該基本類添加到表單上。 有些基本類具有相關(guān)的生成器,這些生成器可自動啟動并向用戶提示該基本類的詳細信息。 類瀏覽器 – 用戶可以使用瀏覽器左上角的拖動圖標(biāo),將對應(yīng)于 A 和 B 基類的基本類從“類瀏覽器”拖動到表單上。方法是:在“類瀏覽器”中選中一個基本類,并在瀏覽器左上角單擊該基本類的圖標(biāo),然后將該圖標(biāo)拖動到表單上;在表單上,在該基本類出現(xiàn)的地方釋放鼠標(biāo)按鈕。 從“類瀏覽器”中將基本類拖動到表單上,將不啟動相關(guān)的生成器。但可以在將基本類拖動到表單上后,啟動生成器。方法是:選中表單上的基本類,單擊鼠標(biāo)右鍵顯示快捷菜單,從快捷菜單上選取“生成器”命令啟動生成器。 項目管理器 – 可以從“項目管理器”拖動對應(yīng)于種類 A 和 B 基類的基本類,并將其放落到表單上。 從“項目管理器”中將基本類拖動到表單上,將不啟動相關(guān)的生成器。但可以在將基本類拖動到表單上后,啟動生成器。方法是:選中基本類,單擊鼠標(biāo)右鍵顯示快捷菜單,從快捷菜單上選取“生成器”命令啟動生成器。 表單控件工具欄 – 添加到表單控件工具欄上的對應(yīng)于種類 A 和 B 基類的基本類,可以從工具欄添加到表單上。 如果沒有啟用“生成器鎖定”,從表單控件工具欄放落基本類可能會啟動相關(guān)的生成器。如果啟用“生成器鎖定”,則可在將基本類添加到表單上后啟動生成器。方法是:選中基本類,單擊鼠標(biāo)右鍵顯示快捷菜單,從快捷菜單上選取“生成器”命令啟動生成器。 將基本類添加到項目中在將包含基本類的表單添加到 Visual FoxPro 項目中時,“項目管理器”自動地將包含該基本類的可視類庫添加到項目中。但有時需要人工地將基本類添加到項目中,如當(dāng)用戶應(yīng)用程序需運行種類 C 對應(yīng)的基本類時,必須人工地將基本類添加到項目中。 可以使用下列方法之一將 Visual FoxPro 基本類添加到項目中:
從“組件管理庫”添加基本類可以從“組件管理庫”將基本類拖動到該項目中、或在“組件管理庫”中,在基本類上單擊鼠標(biāo)右鍵顯示快捷菜單,然后選擇“添加至項目”命令,實現(xiàn)將基本類添加到項目中。在將基本類添加到項目中時,將顯示“向項目添加類”對話框,有下列選項: 向項目添加類 選擇本選項可以將基本類及其 .vcx 類庫添加到項目中。對于放落到表單上的類(種類 A 和 B),這些操作將自動完成。對于種類 B 和 C 的某些類,如果打算在應(yīng)用程序中通過編程對其進行調(diào)用,需要選擇本選項。 從選定的類創(chuàng)建新類 選擇本選項可以根據(jù)希望添加到項目的基本類創(chuàng)建一個新的子類。通常情況下,通過添加附加的程序代碼,可以改進原始基本類的功能。 從選定的類創(chuàng)建新表單 對于基類是 Form 的基本類(如,_dialogs.vcx 中的基本類),可以選擇本選項來根據(jù)基本類創(chuàng)建一個新的表單,改進初始基本類的功能。 從 Windows“資源管理器”添加基本類可以使用 Windows“資源管理器”來訪問將要添加到項目中的類。 若要使用 Windows“資源管理器”添加基本類
該可視類庫將被添加到“項目管理器”的“類庫”數(shù)據(jù)項中。 在“項目管理器”中添加基本類在“項目管理器”中,可以使用“添加”按鈕將類添加到項目中。 若要在“項目管理器”中添加基本類
將類合并到應(yīng)用程序中在很多情況下,無須通過額外的編程,基本類和應(yīng)用程序即可一起工作。但對于某些基本類(對于種類 B 和種類 C 中的非可視基類),可能需要提供附加的程序代碼。 非可視基本類例如,基本類經(jīng)常為基于種類 B 的 Custom 類,這些基本類需要附加的編程。這些非可視類經(jīng)常用來完成一些公用任務(wù),如檢查 Windows 注冊表中的信息、處理環(huán)境設(shè)置、管理應(yīng)用程序錯誤以及利用其他應(yīng)用程序的自動服務(wù)(如使用 Microsoft Word 進行郵件合并)等。 可以將這些非可視類放落到表單上,但除此之外,還需要做一些額外的工作,才能使基本類和應(yīng)用程序一起工作。在某些情況下,在將基本類放落到表單上時,將啟動生成器。 下面的示例演示了如何在應(yīng)用程序中使用非可視基本類的程序代碼:
可以將一個非可視類合并到應(yīng)用程序中,而不必將其放落到表單上,但必須將其包含在用于創(chuàng)建應(yīng)用程序的項目中。下列代碼演示了如何運行相同的“文件版本”基本類,但不將該類放落到表單上。
注釋 本示例假設(shè)這段代碼可以定位 _utilities.vcx 類庫,或這段代碼位于一個連編時包含 _utilities.vcx 的 .app 文件中。 在使用非可視基本類時,用戶需要了解如何以及何時在應(yīng)用程序中使用該類,以便正確地設(shè)置其范圍。如果只有一個表單使用該類,只需將其拖動到對應(yīng)的表單上。但是,如果有很多表單使用該類,或者由應(yīng)用程序全域使用,則該基本類在應(yīng)用程序中應(yīng)該有一個全域范圍,以便在整個應(yīng)用程序中都可以對其進行訪問。此外,全域范圍也可能提高性能。 可視基本類也可以通過編程向應(yīng)用程序中添加可視基本類,例如基類是表單的基本類。下列的示例為一段代碼,可以添加到應(yīng)用程序中,顯示一個“關(guān)于框”對話框(Aboutbox dialog)。
用戶可以為每個應(yīng)用程序創(chuàng)建“對話框”基本類的子類,這樣可以定制應(yīng)用程序?qū)υ捒蛑械膬?nèi)容。下面示例演示了如何創(chuàng)建 Aboutbox 基本類的子類:
從“組件管理庫”中將“運行表單”按鈕(Run Form button)類(Foundation classes\Buttons 文件夾)拖放到表單上。啟動生成器時,指定需要執(zhí)行表單名。 如果使用 Visual FoxPro 6.0 的應(yīng)用程序框架,應(yīng)用程序生成器將自動管理表單( .scx 和 .vcx 表單類)的添加操作。新的應(yīng)用程序向?qū)Щ?#8220;組件管理庫”的“新應(yīng)用程序”數(shù)據(jù)項將在創(chuàng)建的項目中安裝這個框架。應(yīng)用程序生成器直接與該框架交互,使用戶可以指定如何以及在何處啟動表單。 通過使用一個由“應(yīng)用程序向?qū)?#8221;、“應(yīng)用程序生成器”和“組件管理庫”生成的框架,用戶可以得到種類豐富的工具,只需少量的代碼即可創(chuàng)建整個應(yīng)用程序。 類的命名約定Visual FoxPro 的基本類及其屬性和方法程序使用下列命名約定。 類和類庫大多數(shù)基本類是 _base.vcx 可視類庫中的類的子類,可以在 \Ffc\ 文件夾找到這些基本類。這些類的命名約定反映了所使用的基類,如在 _base.vcx 中 Custom 類的子類稱為 _Custom。在 _base.vcx 中,在每個類名前都帶有下劃線( _ )。 有些類庫不包含根據(jù) _base.vcx 創(chuàng)建的子類,因為這些類與其他 Visual FoxPro 組件共享,如向?qū)Ш蜕善?。這些類包含在沒有下劃線的類庫中,例如 Registry.vcx。 方法程序和屬性方法程序的名稱經(jīng)常基于其動作名,如 RunForm。如果名稱包含幾個單詞,如 RunForm,則大寫字母將反映這一點。屬性名通常在前面有一個小寫字母,用來反映特定屬性的數(shù)據(jù)類型,如 cFileName 表明該屬性是一個字符類型。另外,屬性的默認值也設(shè)置為相應(yīng)的數(shù)據(jù)類型,如邏輯型屬性可以初始化為“假”(.F.),而數(shù)值型屬性可以初始化為 0。 早期版本的 Visual FoxPro 類的屬性不受這些屬性命名約定的限制,并且保持原來的名稱,以避免與引用這些屬性的用戶代碼產(chǎn)生兼容性沖突。 改進或修改 FoxPro 基本類用戶可以改進或修改 Visual FoxPro 基本類,以滿足應(yīng)用程序的需要。但是,我們建議您不要修改基本類本身,因為基本類可能會周期性地更新,并帶有新的功能。 創(chuàng)建基本類的子類由于提供了源代碼,這樣用戶可以創(chuàng)建任何基本類的子類,來覆蓋或改進屬性和方法程序。當(dāng)特定的基本類在不同的應(yīng)用程序中有不同的行為時,可以選擇創(chuàng)建子類。 更新 _base.vcx如果需要對 Visual FoxPro 基本類添加全域性的更改時,可以修改 _base.vcx。既然基本類是根據(jù) _base.vcx 創(chuàng)建的子類,對該類庫的更改將自動反映到基本類中。_base.vcx 中的所有類都提供了一組普通的方法程序和屬性。但如果 _base.vcx 中的類不能向應(yīng)用程序添加所需的行為時,可以更改這些類(這與建議不要更改的基本類不同)。 但是,如果需要從用戶自定義的基類(而不是基于當(dāng)前使用的 Visual FoxPro 基類)繼承 _base.vcx 中類的行為,應(yīng)該重新定義這些類,而不要更改 _base.vcx。如果已經(jīng)有了一個基于 Visual FoxPro 基類的自定義類庫,可以重新定義 _base.vcx 中的類,以便從自定義類中繼承其行為。這樣,當(dāng)組件使用 _FoundationClasses 時,組件也將自定義類中繼承行為??墒褂妙悶g覽器重新定義特定類的父類。 如果將整個 _base.vcx 中的類替換為用戶自定義類,請確保類名必須相同,否則基本類將有丟失的鏈接。 |
|