`
NickWar
  • 浏览: 70312 次
  • 来自: 南京
文章分类
社区版块
存档分类

delphi事件处理

 
阅读更多

最近做一个组件Compont,需要获取控件的事件并进行处理,

在delphi中,一个控件的处理函数设置好之后,它原来的处理函数就失效了,我想实现的机制

是如C#中的事件代理一样,

一个+=就可以实现对一个事件添加多个处理函数,但delphi中并没有这样的机制,不过还是有办

法解决的:

比如我在窗体中定义了一个按钮button1,它的默认OnClick处理函数为Button1Click(Sender :

Tobject);我要为它的OnClick事件添加一个处理函数,并且不影响这个Button1Click函数的执行

首先,声明一个与事件类型相同的对象A。
然后,对将这个对象A赋值为原有的处理函数B
将原有的处理函数B赋值为新的处理函数C
在C函数中,使用if Assigned(A) then A(Sender);即可。

比如Button的Onclick事件,类型为TNotifyEvent,可以这样:
tmpButtonClick : TNotifyEvent;
procedure NewButtonOnClick(Sender:Tobject);
在FormShow事件中:
tmpButtonClick := Button1.OnClick;
Button1.OnClick := NewButtonOnClick;
在NewButtonOnClick中执行完所需功能之后:
if Assigned(tmpButtonClick) then
tmpButtonClick(Sender);

分享到:
评论

相关推荐

    Delphi 动态绑定事件处理函数过程

    Delphi 动态绑定事件 指定事件处理函数过程 绑事事件自定义函数过程 测试完全可用,含源码文本.

    Delphi Android 广播事件处理

    使用Delphi完成Android系统广播事件的监听与处理(静态注册广播接收),本程序为监听手机屏幕点亮事件,当屏幕点亮后发送一个本地通知。修改监听事件及处理过程可以实现更多的实用功能。

    Delphi的事件如何设置一个以上的事件处理者?

    Delphi的事件如何设置一个以上的事件处理者?方法非常简单。

    delphi控件属性和事件大全

    详细记录了delphi控件属性和事件,包括各种字符串处理等等

    Delphi编程__键盘和鼠标事件处理

    Delphi编程__键盘和鼠标事件处理。在 Microsoft Windows 界面,可同时运行几个应用程序,但只有具有焦点的应用程序才有活动标题栏,才能接受输入。在有几个 TextBox 的 Visual Basic 窗体中,只有具有焦点的 TextBox...

    delphi 图形处理 源码

    4、MouseUp事件中加入链表 5、MouseMove事件中移动图形 6、DrawGraph过程中加入画图 7、Clear 加入清空 8、preDel过程 9、preFill过程 10、preMove过程 11、SaveToFile过程 12、LoadFromFile过程

    DelPhi Treeview 操作实例

    DelPhi Treeview 操作实例提供了许多事件处理程序和方法来操作 Treeview 组件,例如 OnClick 事件、GetImageIndex 事件、GetSelectedIndex 事件等。使用这些事件处理程序和方法,我们可以实现 Treeview 组件的各种...

    delphi设计简单的web浏览器捕捉NewWindow2事件,即新开窗口事件1

    delphi设计简单的web浏览器捕捉NewWindow2事件,即新开窗口事件1 没有对内存处理

    delphi反编译三剑客工具

    02.DIY原DEDE,使得可以反汇编得到非标准程序的Forms格式和Procedures的事件 03.直接反汇编功能的选项 04.增加对特殊处理过的PACKAGEINFO的Uint List的显示 05.修改原有的"Open With DEDE"的注册键错误&BUG;,可以使用...

    delphi与office操作.doc

    在开发OLE自动化控制器时,需要使用到Delphi的事件处理机制,例如Button的OnClick事件,可以使用这个事件来触发OLE自动化控制器的操作。例如,在上面的代码中,Button1的OnClick事件被用来保存数据到Excel表格中。 ...

    DELPHI专题文档-程序应用

    如何为Delphi程序添加事件和事件处理器 在Delphi应用程序中拖动控件 用DEPHI为应用软件建立注册机制 用Delphi创建临时文件 Delphi 5快速创建控制面板程序 Delphi经验技巧集锦 Microsoft Agent技术在Delphi中的...

    DELPHI专题--程序应用

    如何为Delphi程序添加事件和事件处理器 在Delphi应用程序中拖动控件 用DEPHI为应用软件建立注册机制 用Delphi创建临时文件 Delphi 5快速创建控制面板程序 Delphi经验技巧集锦 Microsoft Agent技术在Delphi中的...

    Delphi编程技巧.rar

    如何为Delphi程序添加事件和事件处理器 在DELPHI程序中使用ADO对象存取ODBC数据库 轻轻松松在DELPHI3.0中实现三态按钮 Api函数列表【与文件有关】 Api函数列表【与打印有关】 Delphi中TApplication类的巧...

    利用Delphi编写IE扩展

    在自己的程序中使用过WebBrowser控件的朋友都知道,WebBrowser控件定义了诸如BeforeNavigate、DownloadComplete 等事件,我们可以通过编写事件处理代码实现对WebBrowser控件的操作。那么如何实现对IE的事件响应和...

    Delphi 5 经典教程

    第1章 Delphi 5下的Windows编程 1 1.1 Delphi产品家族 1 1.2 Delphi是什么 3 1.2.1 可视化开发环境 3 1.2.2 编译器的速度和已编译代码的效 率 4 1.2.3 编程语言的功能及其复杂性 4 1.2.4 数据库结构的灵活性和可...

    delphi设计简单的web浏览器捕捉NewWindow2事件,即新开窗口事件2

    delphi设计简单的web浏览器捕捉NewWindow2事件,即新开窗口事件2 对内存加以处理

    【delphi】Android系统状态广播消息感知控件及演示程序源代码(老吴)

    【delphi】Android系统状态广播消息感知控件及演示程序源代码,详细介绍了Android系统消息广播感知原理。 控件感知功能包括: 1. 感知蓝颜状态变化 2. 感知WiFI状态变化 3. 感知电源状态变化 4. 感知网络状态变化 5....

    delphi中文帮助手册

    delphi中文帮助手册 DOC格式 第一章 Delphi快速入门 1.1 Delphi基本概念介绍 1.1.1 Delphi的基本形式 ... 1.2.5 编写事件处理过程 1.2.6 使用联机帮助Help 1.3 Delphi 2.0的可视化部件用法简介 ...

    win7delphi7视屏播放器

    当然,本文中的代码只是一个简单的示例,实际开发中我们还需要考虑更多的因素,例如视频解码、音频处理和错误处理等。 延伸阅读 * Delphi 7 官方文档:...

    delphi HTMLEVENTHOOK单元

    实现webbroser页面,在delphi响应事件,处理页面

Global site tag (gtag.js) - Google Analytics