如何在delphi程序中为某一控件添加自定义事件

如何在delphi程序中为某一控件添加自定义事件,第1张

像定义属性一样,类型为TNotifyEvent。

private

FMyEvent: TNotifyEvent;

public

MyEvent: TNotifyEvent read FMyEvent write FMyEvent;

在你需要触发事件的地方调用以下代码:

if Assinged(FMyEvent)

FMyEvent(Self);

滚动条控件的滚动事件是由其父对话框来响应的

所以,直接响应对话框的WM_VSCROLL和WM_HSCROLL消息就可以了

若对话框中有多个滚动条,则可以用WM_VSCROLL和WM_HSCROLL消息响应函数中的参数CScrollBar

pScrollBar来进行判断

如果添加的控件,在属性框的事件栏里点击对应的Item的click就会自动生成,在方法中写你要进行的 *** 作就可以了

如果是自己写标签,给Item添加类似于<Button\>的标签内容,里面写上点击后的处理事件方法名,及runat="server"。具体的记不太清楚了。供参考

如果添加的控件,在属性框的事件栏里点击对应的Item的click就会自动生成,在方法中写你要进行的 *** 作就可以了

如果是自己写标签,给Item添加类似于<Button\>的标签内容,里面写上点击后的处理事件方法名,及runat="server"。具体的记不太清楚了。供参考

用 OD 捕获按钮事件,可以尝试以下办法:

1、通过编写好的脚本来获取按钮事件:

先将以下脚本保存至 txt 文件中:

var Addr

mov Addr,401000

loop:

find Addr,#740E8BD38B83FF93#

cmp $RESULT,0

je Exit

add $RESULT,0A

bp $RESULT

add $RESULT,1

mov Addr,$RESULT

jmp loop

Exit:

ret

用OD载入 Delphi 程序,右键 运行脚本-->打开,选择上面保存的文件,运行,如果d出了script finished 窗口就表示找到按钮事件断点位置。

2、用资源编辑工具+十六进制编辑工具来查找:

首先用ResScope或者其他工具打开目标程序,在RCData中能够找到窗体的资源信息,例如

  object Form1: TForm1

    object Button1: TButton

      Caption = 'Button1'

      OnClick = Button1Click

    end

  end

  此时假设我们要找“Button1”按钮事件,记住OnClick的名字(在这里就是Button1Click)

  然后再用WinHex打开程序,查找事件名“Button1Click”,如下图所示: 事件名的前一个字节就是事件名的长度,再前面就是事件地址了:

找到地址后,用 OD载入程序,直接Ctrl+G前往该地址。

以上就是关于如何在delphi程序中为某一控件添加自定义事件全部的内容,包括:如何在delphi程序中为某一控件添加自定义事件、在MFC中如何为滚动条添加消息事件处理程序:onvscroll、C# 如何给listview的item 添加点击事件响应程序 最好给代码示意等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10130373.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存