精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>● VB和Basic(1)>>文章连载>>ActiveX>>ACTIVEX(3)

主题:ACTIVEX(3)
发信人: antfeeling()
整理人: fishy(2000-08-22 08:08:22), 站内信件
为 Initialize 和 Terminate 事件添加代码


类模块有两个内置的事件:Initialize 和 Terminate。Initialize 事件过程中
的代码在创建对象时首先执行,领先于其它任何设置属性或执行方法的动作。

在对象的所有引用都被释放以后要执行 Terminate 事件中的代码,然后对象就被
破坏。

下面过程所添加的代码是用来支持 DebugID 属性和 Debug.Print 方法的,在对
象被创建和破坏时,我们用 Debug.Print 显示对象的属性。

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

要为 Thing 类的 Initialize 和 Terminate 事件添加代码,请按照以下步骤执
行: 

在 Thing 类模块的“对象”框中,选择“类”。Initialize 事件将显示在“过
程”框中,同时代码窗口会显示出事件过程的代码模板。在事件过程中添加下列
代码: 
Private Sub Class_Initialize()
'获得由只读的 DebugID 属性
'   返回的调试 ID。
mlngDebugID = GetDebugID
Debug.Print "Initialize Thing " & DebugID _
& ", Name=" & Name
End Sub

在类模块的“过程”框中,选择“终止”。在事件过程中添加下列代码: 
Private Sub Class_Terminate()
On Error Resume Next
Debug.Print "Terminate Thing " & DebugID _
& ", Name=" & Name
End Sub

重点 Class_Terminate 事件过程中的错误是必须处理的。使用部件的应用程序不
能处理 Class_Terminate 中的错误,所以这些错误对于应用程序来说将是致命的


与此相反,在 Initialize 事件中没有处理的错误是在应用程序创建该对象时发
生的,因此可以被应用程序处理。

通常,Initialize 事件过程包含了在对象创建时需要执行的所有代码,例如为 
DebugID 属性提供时间戳记。Terminate 事件则包含了在对象被破坏时需要执行
的所有清理代码。

重点 Initialize 和 Terminate 事件决不应该与用户打交道。为了便于说明该例
子利用它们给出一个 Thing 对象被创建和被破坏的直观的说明。

详细信息 请参阅“部件设计的一般准则”中的“编写强健的初始化和终止事件”


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

目的 请参阅 
到下一步 创建 TestThing 测试工程 
从头开始 创建一个 ActiveX DLL 



--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 61.141.204.217]

[关闭][返回]