Access和Assign就相當(dāng)于屬性的get和set 贊 
十豆三 2007-12-13 Access 和 Assign 方法程序 請參閱
Visual FoxPro 支持 Access 和 Assign 方法程序,它們是與類屬性有同樣名稱,并有 _ACCESS 或 _ASSIGN 后綴添加到過程或函數(shù)名后面的自定義過程或函數(shù)。當(dāng)你查詢一個屬性值或試圖更改該屬性值時,可以使用 Access 和 Assign 方法程序來執(zhí)行代碼。只有在運行時刻查詢或更改屬性值,Visual FoxPro 才執(zhí)行 Access 和 Assign 方法程序。在設(shè)計時刻查詢或更改屬性值,不會執(zhí)行。你可以單獨和互相獨立地創(chuàng)建 Access 和 Assign 方法程序。
Access 和 Assign 方法程序提供下列幫助:
可以給執(zhí)行單獨接口的類或?qū)ο髣?chuàng)建一個公共接口。
可以輕松地進(jìn)行屬性有效性確認(rèn)。
可以方便地保護(hù)子類 ActiveX 控件的屬性。
當(dāng)查詢一個屬性值,通常通過使用一個對象的引用屬性,存儲屬性值到一個變量或用帶問號 (?) 的命令來顯示屬性值時,Visual FoxPro 執(zhí)行 Access 方法程序代碼。
當(dāng)你試圖更改屬性值,通常使用 STORE 命令或 = 操作符去分配一個新值給屬性時,Visual FoxPro 執(zhí)行 Assign 方法程序代碼。
注意: 可以為 Visual FoxPro 大多數(shù)固有的屬性創(chuàng)建 Access 和 Assign 方法程序,可以給只讀屬性創(chuàng)建 Assign 方法程序,可是該方法程序永遠(yuǎn)也不會執(zhí)行。Visual FoxPro 不支持控件 Value 屬性的 Assign 方法程序,也不支持 ActiveX 控件固有屬性、事件或方法的 Access 和 Assign 方法程序。然而,Visual FoxPro 支持包含在 Visual FoxPro OLE 容器中 ActiveX 控件屬性、事件和方法的 Access 和 Assign 方法程序。
注意: 當(dāng)使用一個固有數(shù)組函數(shù) (如 ASCAN()) 訪問數(shù)組時,成員數(shù)組的 Access 和 Assign 方法程序不被激發(fā)。
注意: 當(dāng)它們的值被查詢并且沒有改變時,某些固有屬性的 Assign 方法程序?qū)⒈患ぐl(fā)。這些包括尺寸方面的屬性如 Top、Left、Height、Width 以及其他少數(shù)象 Visible 屬性等。這是由于 Visual FoxPro 內(nèi)部處理了這些屬性。
在運行時刻,Visual FoxPro 將 Access 和 Assign 方法程序作為 Protected,因此它們不能被外部的類定義訪問??墒?,當(dāng)你在“類設(shè)計器”中,Visual FoxPro 對這些 Access 和 Assign 方法程序有一個特定的方法。當(dāng)你將一個對象放入一個容器 (例如將一個命令按鈕放入一個表單) 中時,Visual FoxPro 通常標(biāo)記該對象的 Protected 方法程序為只讀,并且在設(shè)計器中不能修改。然而,你可以在類設(shè)計器中編輯該對象的 Access 和 Assign 方法程序。
|