正在阅读:在VB程序中处理随机事件在VB程序中处理随机事件

2005-06-10 10:20 出处: 作者:蛋蛋 责任编辑:moningfeng
为了打破上面的几点局限性,就必须寻找新的解决办法。非常庆幸的是,VB5.0企业版的推出,给VB增添了许多强有力的特性,有几点特性,正好可以帮助我们解决难题。先让我介绍一下这几个特性:   1.用户自定义事件:在类模块中,可以使用Event关键字来定义用户自定义事件,使用RaiseEvent语句来产生该事件,这一机制给处理随机事件带来极大的方便。上面说的消息广播引擎,就可以不再使用Timer控件做支持,而是当收到需要广播的消息时,产生一个预定义的事件,而需要处理消息的客体对象,只需截获该事件,就完成了消息的传递。   2.ActiveX EXE部件:利用VB,可以方便地将共享代码封装在ActiveX部件之中。将消息广播引擎实现于一个ActiveX部件之中,不仅方便了在程序中使用,而且更为重要的一点是,可以实现跨进程间的消息传递。因为ActiveX部件有内部(DLL)外部(EXE)两种,对于外部部件,可以对模块内的全局数据实现共享(关于ActiveX两种代码部件的区别,请阅读VB的联机帮助文件)。   3.远程自动化连接:ActiveX部件,是一种标准的客户机/服务器结构,利用Windows平台的COM模型,VB已能方便地将这种结构扩展到整个网络的范围。所以,我们的消息广播设计,在实现了进程间的消息传递之后,进而实现网络上的消息传递,也成为可能。   通过上面的几点介绍,这一方式的设计思想也就比较清楚了,在具体设计时,我通过四个模块之间的相互协作,完成了消息的发送、广播及接收,并将这四个模块封装在一个ActiveXEXE部件之中。下面就是这三个类模块的简单介绍及源代码:   类模块之一:Msg.cls----在该模块中,定义了消息数据结构VbMsg类,它是消息传递中的载体。这里只是一个简单的例子,如果想实现更多的功能,如建立两点间的数据通道,而不是单纯的广播消息,则可能需要对该结构进行一些扩充。

  VERSION 1.0 CLASS   BEGIN   MultiUse = -1 'True   END   Attribute VB_Name = "VbMsg"   Attribute VB_GlobalNameSpace = False   Attribute VB_Creatable = True   Attribute VB_PredeclaredId = False   Attribute VB_Exposed = True   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

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品