有没有办法记录Delphi中的每个gui事件?
Delphi调试器非常适用于调试线性代码,其中一个函数以可预测的线性方式调用其他函数,我们可以一行一步地遍历程序.
当处理事件驱动的gui代码时,我发现调试器不太有用,其中单行代码可能会导致触发新的事件,这可能反过来触发其他事件. 我通常解决这个问题的方法是1)猜测哪些事件可能是问题的一部分,然后2)添加断点或记录到每个这些事件. 问题是这种方法是偶然的和耗时的. 是否有一个开关我可以在调试器中弹出来说“记录所有gui事件”?或者有一些代码可以添加到陷阱事件,像 procedure GuiEventCalled(ev:Event) begin log(ev); ev.call(); end 我正在寻找的最终结果是这样的(例如): FieldA.KeyDown FieldA.KeyPress FieldA.OnChange FieldA.OnExit FieldB.OnEnter 这样可以把所有的猜测都从Delphi gui调试开始. 我使用的是Delphi 2010 [编辑] [EDIT2] 要使用 >下载EventInterceptor Unit并将其添加到您的项目中 AddEventInterceptors(MyForm的); 打开调试器窗口,任何被调用的事件将被记录到事件日志中 [/ EDIT2] 解决方法
使用我写的
download here的“delphieventlogger”单元.它只是一种方法调用,非常容易使用.它将所有TNotifyEvent(例如OnChange,OnEnter,OnExit)记录到调试器窗口中的Delphi事件日志中.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |