VFP容器與控件

字號:

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