📄 clsservexe.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "clsServEXE"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
Option Explicit
Private frmServTry As frmServExe
Private WithEvents mtmrServTry As Timer
Attribute mtmrServTry.VB_VarHelpID = -1
'定义好一个枚举之后,将存放到组件的类型库之中
'这个枚举将不会跟定义它的类相关联,而是成为全局名
'空间中的一部分。
'使用自己的枚举而不用VB中默认的值,只是为了避免冲突
'另外,也可以演示创建枚举的应用。
Public Enum ShowfrmModal
sevModal = vbModal
sevModeless = vbModeless
End Enum
Public Event GetString()
Public Sub ShowForm(Optional Modality As ShowfrmModal = sevModal)
'该过程用来演示如何调用ActiveX EXE中的表单
'通过类的一个方法来调用相关的表单
If Modality = sevModeless Then
frmServTry.Caption = "测试ActiveX EXE的非模式窗体"
Else
frmServTry.Caption = "测试ActiveX EXE的模式窗体"
End If
frmServTry.Show Modality
End Sub
'类初始化时,为表单创建新的实例,以供类中的方法使用。
'将表单上的Timer控件与类的Timer类型的模块级变量相关联;
'这样,才能在类中包含Timer控件,否则,类不是一个容器
'将无法包含相应的Timer控件
Private Sub Class_Initialize()
Set frmServTry = New frmServExe
Load frmServTry
Set mtmrServTry = frmServTry.tmrServ
End Sub
'在类使用结束的时候,释放所有为它设置的对象。
'因为,任何进程外所使用的对象都应该在不再被需要的时候释放
'为了中止它们,要将WithEvents的对象设置为Nothing,这就表示
'停止了处理Timer控件的事件
'这样,frmServExe表单将能够卸载,并且将包含该表单的变量设置
'为Nothing
'尽管VB的垃圾管理器能够自动回收不需要的资源,但是作为一种良
'好的编程习惯,还是自己决定对对象的释放比较好
Private Sub Class_Terminate()
Set mtmrServTry = Nothing
Unload frmServTry
Set frmServTry = Nothing
End Sub
'触发Timer控件事件
Private Sub mtmrServTry_Timer()
RaiseEvent GetString
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -