为 Thing 类创建属性和方法

要为类创建属性,需要在类模块中添加公共变量和属性过程。要为类创建方法,需要在类模块中添加 Public Sub 和 Public Function。下面的步骤为 Thing 类创建了两个属性和一个方法。

注意 创建一个 ActiveX DLL 示例需要分为几步,这个帮助主题只是其中一步。要访问该帮助主题,选择帮助主题“创建 ActiveX DLL”即可。

创建 Name 属性

变量 Name 被声明为 Public 的,因此就成了 Thing 类的一个属性。

重点 不要混淆此处创建的 Name 属性与类模块的 Name 属性。类模块的 Name 属性是在设计时用来指定类名 (Thing) 的;在运行时看不到这个属性。

要创建只读的 DebugID 属性,请按照以下步骤执行:

  1. 在 Thing 的类模块的声明部分中添加下列代码:
    '用来存储 DebugID 属性的值。
    Private mlngDebugID As Long
    
  2. 在“工具”菜单中,选择“添加过程”打开“添加过程”对话框。在“名称”框中,输入 DebugID。单击“属性”和“公共的”,然后单击“确定”。

  3. 在代码窗口中,删除 Property Let 过程,并修改 Property Get 过程,如下所示:
    Public Property Get DebugID() As Long
    DebugID = mlngDebugID
    End Property
    

    Property Let 过程的用途是允许用户为 DebugID 属性赋新的值。删除这个过程就使属性变成只读的了。

提示 由于属性过程由两部分组成,所以用查看全部模块的方式会使操作容易一些。可以用代码窗口左下角的按钮在查看过程和查看全部模块两种方式之间切换。

变量 mlngDebugID 是一个私有数据成员,用来存储 DebugID 属性的值。由于把它声明为 Private,因此客户应用程序看不到它,也就不能修改它。这就是封装的一个例子,更详细的讨论可以在《Visual Basic 程序员指南》中的“将用户定义类型和过程组织在一起”部分中找到。

Property Get 过程返回私有变量的值,使客户应用程序能够用下列代码读到属性值:

Private Sub Command1_Click()
   Dim t As ThingDemo.Thing
   Set t = New ThingDemo.Thing
   MsgBox t.DebugID
End Sub

要创建 ReverseName 方法,请按照以下步骤执行:

  1. 在“工具”菜单中,单击“添加过程”打开“添加过程”对话框。在“名称”框中,输入 ReverseName。单击“子程序”和“公共的”,然后单击“确定”。

  2. 在 Thing 类模块的新的 Sub 过程中输入下列代码:
    Public Sub ReverseName()
    Dim intCt As Integer
    Dim strNew As String
    For intCt = 1 To Len(Name)
    strNew = Mid$(Name, intCt, 1) & strNew
    Next
    Name = strNew
    End Sub
    

注意 刚刚创建、并用于 ReverseName 方法的 Name 属性不同于类模块的 Name 属性。与刚才创建的 Name 属性不同,类模块的 Name 属性在运行时是不可见的。

循序渐进

创建 ActiveX DLL 示例需要好几步,该帮助主题只是其中一步。

目的 请参阅
到下一步 为 Initialize 和 Terminate 事件添加代码
从头开始 创建一个 ActiveX DLL