vfp8.0新增加了类member,其功能是:可定义和派生特定的容器的成员。这些容器有:PageFrame, CommandGroup, OptionGroup 和 Grid ,它们有两个新的属性,MemberClassLibrary 和 MemberClass, 可以用来为成员对象设置默认的自定义类。
 MemberClassLibrary指明自定义类库, MemberClass指明类库中自定义的类。
下面以一个实例代码说明:
 
主程序:
PUBLIC x
x = CREATEOBJECT("form")  //创建一个表单对象
x.ADDOBJECT("pf1","myPageFrame")//增加一自定义页框对象
x.pf1.Visible = .T.  //页框可见
x.Show()  //表单可见
 
DEFINE CLASS myPageFrame AS PageFrame//由基类pageframe派生一自定义页框类
   MemberClassLibrary = 'myPages.PRG'  //指明页框的自定义类库
   MemberClass = 'myPage'//指明自定义类
   PageCount = 2//页个数
   TabOrientation = 1//页的外观方式
ENDDEFINE

下面是自定义类库
mypages.prg
 
DEFINE CLASS myPage AS Page  //自定义页类
   ADD OBJECT cmd1 AS commandbutton WITH ;//每页都有一个按钮
      Caption = "Hello", FontBold = .T.
   PROCEDURE Init    //每页的初始化事件
      THIS.Caption = "Funpage"+TRANSFORM(THIS.Parent.PageCount)
   ENDPROC
   PROCEDURE cmd1.Click  //按钮的click事件处理
      MESSAGEBOX(this.Caption)
      THIS.Parent.Parent.PageCount = THIS.Parent.Parent.PageCount+1
   ENDPROC
ENDDEFINE
 
通过上面的自定义类库中的类,为每个页指定了统一的行为。
 
注意:
不能传递参数到新创建成员的 Init 事件, 因为成员是在父容器的 Count 属性改变时动态创建的,如果需要传递参数, 可以用容器的 AddObject 方法。