VFP容器與控件

字號:

Visual FoxPro 6.0的基類共分成兩個大類:容器類和非容器類。一般稱容器類基類為容器,而把非容器類基類稱為控件,有時候也把所有基類都稱為控件。
    1.容器類
    容器類可以包含其他對象,并且允許訪問這些對象。例如,若創(chuàng)建一個含有兩個列表框和兩個命令按鈕的容器類,而后將該類的一個對象加入表單中,那么無論在設(shè)計時還是在運行時,都可以對該容器中任何一個對象進行單獨操作。不僅可以改變列表框的位置和命令按鈕的標(biāo)題,也可以在設(shè)計階段給這個容器添加新對象。例如,可以給列表框加標(biāo)簽,來標(biāo)明該列表框。
    2.控件類
    控件類的封裝比容器類更為嚴(yán)密,但也因此喪失了一些靈活性??丶悰]有AddObject方法程序。在該“類”中不能包含其他類,最典型的控件類就是命令按鈕。容器類雖然在引用時可以視為一個整體,但無論是在設(shè)計階段還是在運行階段,其所包含的對象都是可以識別并可以單獨操作的。圖lO.2對這兩種不同的對象進行了比較。
    3.容器中各對象的調(diào)用
    在進行容器類“子類”或“對象”的設(shè)計時,往往要調(diào)用容器中某一特定對象,這就要掌握OOP方法中對象的標(biāo)識方法。首先要明確下面幾個問題:
    (1)容器類中對象的層次
    容器中的對象仍然可以是一個容器,一般把一個“對象”的直接容器稱為“父容器”,在調(diào)用特定的對象時,搞清該對象的“父容器”是至關(guān)重要的,不能把一個對象的間接容器錯誤地視為其“父容器”。
    (2)對象使用局域名
    每個對象都有一個名字。在給對象命名時,只要保證同一個“父容器”下的各對象不重名即可,換句話說,對象使用的是局域名,因此不能單獨使用對象名來調(diào)用對象,對象調(diào)用的一般格式是:
    ObjectL.Object2….
    0bjectL、Object2是對象名字,其中Objectl是Object2的“父容器”,這種格式所表示的是Object2而非Objectl,“對象”與其“父容器”間用一個小數(shù)點(.)分隔。
    (3)幾個代詞的用法
    在進行對象調(diào)用時,有幾個經(jīng)常使用的代詞,應(yīng)理解其含義并能熟練應(yīng)用。