设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 26556|回复: 200
打印 上一主题 下一主题

[模块/函数] 【原创 / 源码】Access控件事件配线架(EventsDistributionFrame) 发布贴(当前版

[复制链接]
跳转到指定楼层
1#
发表于 2005-9-15 18:29:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注意:请下载本贴中最后发布的版本

名称:EventsDistributionFrame

版本:V 1.0



简介

  在对窗体控件事件编程的时候,我经常为要写许多类似或相同的代码不停粘贴而感到头痛,记得以前公司综合布线的时候,把上百门电话和几百根网线插到配线架上,通过跳线进行集中管理,如果事件编程也能象配线架一样集中管理,那么我的编程将会轻松很多,代码也会更加容易维护,于是就有了写这个程序的初衷。

  本程序针对大量的窗体控件事件编程而设计,可以批量集中分类处理窗体/控件事件(例如一个控件的多个事件,或多个控件的同一事件),支持各种不同的事件分类方式,尤其适用于较复杂的界面事件编程。

  本程序从本人之前发布的EventsHub发展而来,最重大的改进即是支持了事件参数。使得编程人员已经可以完全抛弃传统的窗体事件编程方式。

  本程序面向熟练的Access VBA程序员,不适合新手使用。



使用说明

  程序源码中包含一个调用范例,以及各个函数的参数详细注释,这里仅对原理进行阐述:

1、首先必须在窗体代码中创建两个空的集合对象,如范例中的:

Dim edfCtls As New Collection

Dim edfPorts As New Collection

2、在Form_Load中进行事件定义和端口定义,如范例中的:

Public Sub Form_Load()

    edfInitEvents edfCtls, edfPorts, Me, 0, acComboBox, edfHookChildren

    edfInitEvents edfCtls, edfPorts, Me, 1, acTextBox, edfHookChildren

    edfInitEvents edfCtls, edfPorts, Me, 1, acListBox, edfHookChildren, "MyList"



    edfInitPorts edfPorts, AddressOf CustomFuncSample, 0

    edfInitPorts edfPorts, AddressOf CustomFuncSample2, 1

End Sub

  edfInitEvents函数对于事件进行定义,edfPorts函数对于端口进行定义,每个端口允许指定多组事件,但是只允许指定一个处理函数。具体的调用参数说明请查阅源码中的注释说明。



3、自定义事件处理函数,如范例中的:

Public Sub CustomFuncSample(ByRef acCtl As Control, ByRef strEvent As String, ByRef Params As Collection, ByRef reserved As Long)

    Dim i As Variant

    Debug.Print acCtl.ControlName & "_" & strEvent;

    For Each i In Params

        Debug.Print " " & i;

    Next i

    Debug.Print

End Sub

  自定义处理函数将被指定端口上发生的所有事件调用,每个端口通过edfInitPorts指定一个自定义处理函数。事件参数被包含在Params集合中,具体的参数说明请查阅源码中的注释说明。范例中的自定义处理函数功能为将事件描述输出到立即窗口。

4、本程序仅适用Access的19种标准控件(包括2种无事件控件)



程序下载:(OpenSource)

游客,如果您要查看本帖隐藏内容请回复




[此贴子已经被作者于2005-11-3 9:07:39编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-9-15 18:58:00 | 只看该作者
看看先
3#
发表于 2005-9-15 19:15:00 | 只看该作者
看看先
4#
 楼主| 发表于 2005-9-15 19:18:00 | 只看该作者
名称:EventsDistributionFrame

版本:V 1.01



更新

  根据cg1的建议,加入了根据控件标记(Tag)进行绑定



下载:(OpenSource)

游客,如果您要查看本帖隐藏内容请回复


[此贴子已经被作者于2005-9-15 11:18:32编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
5#
发表于 2005-9-15 19:45:00 | 只看该作者
ok
6#
发表于 2005-9-15 21:47:00 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
7#
 楼主| 发表于 2005-9-15 21:47:00 | 只看该作者
名称:EventsDistributionFrame

版本:V 1.1



更新

1、修正了1.0和1.01中,用户自定义函数无法送回Cancel参数和Response参数的问题

2、新增了一个用户自定义事件处理应用实例,功能为设定组合框输入的值不在值列表中时,自动添加到值列表。今后将发布更多使用EDF简化程序的应用实例。

3、更完整的程序注释


下载:(OpenSource)

游客,如果您要查看本帖隐藏内容请回复




[此贴子已经被作者于2005-9-15 13:53:13编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
8#
发表于 2005-9-15 22:39:00 | 只看该作者
学习

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
9#
发表于 2005-9-15 22:47:00 | 只看该作者
学习
10#
发表于 2005-9-16 05:05:00 | 只看该作者
真是历害
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-2 15:40 , Processed in 0.183764 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表