1.用户自定义事件:在类模块中,可以使用Event关键字来定义用户自定义事件,使用RaiseEvent语句来产生该事件,这一机制给处理随机事件带来极大的方便。当收到需要广播的消息时,产生一个预定义的事件,而需要处理消息的客体对象,只需截获该事件,就完成了消息的传递。
2.ActiveX EXE部件:利用VB,可以方便地将共享代码封装在ActiveX部件之中。将消息广播引擎实现于一个ActiveX部件之中,不仅方便了在程序中使用,而且更为重要的一点是,可以实现跨进程间的消息传递。因为ActiveX部件有内部(DLL)外部(EXE)两种,对于外部部件,可以对模块内的全局数据实现共享(关于ActiveX两种代码部件的
区别,请阅读VB的联机帮助文件)。
3.远程自动化连接:ActiveX部件,是一种标准的客户机/服务器结构,利用Windows平台的COM模型,VB已能方便地将这种结构扩展到整个网络的范围。所以,我们的消息广播设计,在实现了进程间的消息传递之后,进而实现网络上的消息传递,也成为可能。
通过上面的几点介绍,这一方式的设计思想也就比较清楚了,在具体设计时,通过四个模块之间的相互协作,完成了消息的发送、广播及接收,并将这四个模块封装在一个ActiveXEXE部件之中。下面就是这三个类模块的简单介绍及源代码:
类模块之一:Msg.cls----在该模块中,定义了消息数据结构VbMsg类,它是消息传递中的载体。这里只是一个简单的例子,如果想实现更多的功能,如建立两点间的数据通道,而不是单纯的广播消息,则可能需要对该结构进行一些扩充。
Option Explicit
/ 说 明:
/ 消 息 类: 定 义 全 局 的 消 息 结 构
Public iType As Long /消 息 类 型 编 号
Public iName As String /消 息 名
Public iSource As String / 消 息 源 说 明
Public iDescription As String /消 息 说 明
Dim iT As Date / 消 息 发 生 时 间
/返 回 日 期 型 时 间
Public Property Get iTime() As Date
iTime = iT
End Property
/返 回 字 符 型 时 间
Public Property Get iTimeStr() As String
iTimeStr = Format(iT, "yyyy.mm.dd hh:mm:ss")
End Property
/ 在 对 象 被 建 立 时, 设 置 消 息 发 生 时 间
Private Sub Class_Initialize()
iT = Now()
End Sub
【VB程序中处理随机事件】相关文章:
2025年外省高中学业水平合格性考试成绩转入江苏认定的通告公布03-23
Vb中控件的自动排列03-23
中国大地保险公司实习报告03-23
07年4月北师大“中国古代文学史(一)”串讲(5)03-23
汪涵讲述小时候成长经历:鸡毛掸子的故事03-23
2023年广东梅州中考成绩查询时间及查分入口[7月7日起]03-23
儿童舞蹈教程:国标新手上路03-23
2024年江苏中级导游等级考试准考证打印时间及入口(11月18日9:00起)03-23
