Reflection 在Delphi上注入跟踪事件的代码

Reflection 在Delphi上注入跟踪事件的代码,reflection,introspection,rtti,delphi,Reflection,Introspection,Rtti,Delphi,我有一个用Delphi version 2007编写的大而旧的应用程序已经有十多年了,为了重写它,我打算了解它的哪些部分/功能主要被大多数用户使用 我们提出的想法是跟踪对象点击和窗口创建,用定量和定性数据填充日志或分析工具,如Google analytics或Deskmetrics,以帮助决策 为了实现这一点,我试图找出什么是最简单的方法,尊重当前版本的限制。我正在探索的一种可能性是理解如何实现一些通用代码,这些代码可以以某种方式“注入/反映”到类级别,以便所有实例化的对象可以调用一个传递参数的

我有一个用Delphi version 2007编写的大而旧的应用程序已经有十多年了,为了重写它,我打算了解它的哪些部分/功能主要被大多数用户使用

我们提出的想法是跟踪对象点击和窗口创建,用定量和定性数据填充日志或分析工具,如Google analytics或Deskmetrics,以帮助决策

为了实现这一点,我试图找出什么是最简单的方法,尊重当前版本的限制。我正在探索的一种可能性是理解如何实现一些通用代码,这些代码可以以某种方式“注入/反映”到类级别,以便所有实例化的对象可以调用一个传递参数的函数来识别自己,然后该函数将采取行动,使用最佳工具记录这些信息

到目前为止,唯一真正的解决方案是在数千个onClick/onCreate方法上复制和粘贴此函数调用,我希望避免这种情况,同时我愿意接受此线程中可能出现的所有其他可能性


谢谢

操作管理器可以让您集中跟踪所有用户操作。请查看中的。引入操作管理器确实是正确的方法。每次点击都会变成一个动作OneExecute。当你使用它时,添加一些额外的日志记录,这样你就可以看到用户对你的应用程序的实际操作。请确保不要将私人信息(如患者/客户数据)记录到这些日志文件中,只记录使用的工具/按钮。@DavidHeffernan在该应用程序中,当前没有操作管理器。有没有一种不用手动将每个对象的操作引用到它的快速方法来使用它?在我看来,你必须让按钮或菜单项一个接一个地关联起来?我错了吗?再次感谢!你需要做一些工作才能达到你需要的地方。没有神奇的解决办法。