Delphi 战术是从哪个方向发射的?

Delphi 战术是从哪个方向发射的?,delphi,Delphi,用户可以通过多种方式触发动作(TAction)执行:快捷键、工具栏按钮、弹出菜单按钮等。是否可以获取该动作是如何触发的信息 我正在考虑如何实现活动日志,以找出在GUI中使用不同功能的最常用方法 更新 我需要收集一些关于用户如何与应用程序GUI交互的统计信息 仅仅因为需要实现日志记录,就为每个按钮创建单独的操作不是最好的主意。乌尔里希·葛哈德的答案看起来很合适。我可以将处理程序分配给TActionList.OneExecute事件,并从一个位置写入日志 也许您可以使用: 使用ActionCompo

用户可以通过多种方式触发动作(TAction)执行:快捷键、工具栏按钮、弹出菜单按钮等。是否可以获取该动作是如何触发的信息

我正在考虑如何实现活动日志,以找出在GUI中使用不同功能的最常用方法

更新

我需要收集一些关于用户如何与应用程序GUI交互的统计信息

仅仅因为需要实现日志记录,就为每个按钮创建单独的操作不是最好的主意。乌尔里希·葛哈德的答案看起来很合适。我可以将处理程序分配给TActionList.OneExecute事件,并从一个位置写入日志

也许您可以使用:

使用ActionComponent来识别 客户端组件导致此操作失败 执行。例如,检查 OnExecute中的ActionComponent 事件处理程序,如果您需要知道 用户操作触发了此操作

当用户单击客户端控件时, 该客户端设置ActionComponent 在调用操作的Execute 方法。在操作执行后 操作将ActionComponent重置为零 (Delphi)或NULL(C++)


还有,可能还有更多的“钩子”。

谢谢,我忘了那个房子了。它几乎完全符合我的需要。但是快捷键呢?在这种情况下,将为ActionComponent分配什么值?快捷键并不总是绑定到组件;Windows和/或Delphi可以为您生成它们。向我们解释您为什么需要此功能,我们可以帮助您以更好的方式设计应用程序。很难检测键盘调用动作的不同方式。可能是捷径。可能是加速器。可以通过光标/制表键进行导航。如果你想知道你的设计被破坏了,请欣赏你识别未知应用程序设计的心灵感应能力。如果你想让按键的行为与菜单单击不同,那就不同了。出于兴趣,你为什么在乎他们是使用菜单还是快捷方式?您应该查找哪些操作最常被调用,并确保为这些操作提供良好的键盘访问(例如shortuct)。关于收集应用程序的使用情况统计信息,请查看。这是一个DLL,他们有一个Delphi接口单元。