1

我正在寻找一些机制,我可以通过某种事件拦截所有TSaveDialog.Execute或方法。TOpenDialog.ExecuteOnDialogBeforeExecute

我想知道TVirtualMethodInterceptor,使用某种插入器类或以某种方式预填充OnShow每个对话框的事件。

有人知道实现这一目标的方法吗?

4

1 回答 1

2

如果这是您的代码,那么我建议从 TSaveDialog 类继承并覆盖 Execute 方法。

我从未使用过 TVirtualMethodInterceptor,但这似乎是一种在运行时执行相同操作的方法 - 这对于不属于您的代码或您没有源代码访问权限或由于某种原因无法编译的代码很有帮助。当您使用 Thinfinity 时,可能会出现这种情况,这些应用程序是为在 Windows 桌面上使用而开发的,您希望独立维护,但在托管时功能已改变。这似乎是一种明智的做法。

无论您采用哪种方式,您都可以根据需要包含 BeforeExecute 和 AfterExecute 事件,并提供带有 OnExecute 事件的替代 Execute,该事件可以触发而不是调用继承的 Execute。

于 2020-09-08T07:58:11.017 回答