要为类创建属性,需要在类模块中添加公共变量和属性过程。要为类创建方法,需要在类模块中添加 Public Sub 和 Public Function。下面的步骤为 Thing 类创建了两个属性和一个方法。
注意 创建一个 ActiveX DLL 示例需要分为几步,这个帮助主题只是其中一步。要访问该帮助主题,选择帮助主题“创建 ActiveX DLL”即可。
创建 Name 属性
Option Explicit
Public Name As String
变量 Name
被声明为 Public 的,因此就成了 Thing 类的一个属性。
重点 不要混淆此处创建的 Name 属性与类模块的 Name 属性。类模块的 Name 属性是在设计时用来指定类名 (Thing) 的;在运行时看不到这个属性。
要创建只读的 DebugID 属性,请按照以下步骤执行:
'
用来存储DebugID
属性的值。Private mlngDebugID As Long
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 方法,请按照以下步骤执行:
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 |