Delphi - 从应用程序中捕获所有action.onexecute

RBA*_*RBA 6 delphi delphi-2006

我有一个包含数百个TActions的大型应用程序.它们中的每一个都被使用并实现所需的不同功能.

可以从应用程序中捕获(挂钩)所有TAction.OnExecute吗?有没有我可以挂钩的Windows消息,所以我可以记录执行的动作名称?

Dav*_*nan 13

您只需添加一个TApplicationEvents对象并处理该OnActionExecute事件.事件处理程序传递给Action实例,因此可以很容易地获取操作的名称.

OnActionExecute事件将在动作OnExecute事件触发前触发.您甚至可以OnExecute通过在事件处理程序中将Handled参数设置为停止来触发操作的事件.TrueOnActionExecute