【发布时间】:2013-12-03 10:37:38
【问题描述】:
我有一个小问题。 我需要创建一个组件来捕获特定类型组件的一些事件,这些事件独立于它们的数量。 示例:我需要在每次调用事件 TIBDatabase 时激活活动组件(Palette Interbase),然后在我的运行事件代码的组件激活时自动配置组件的一些属性。 是自动执行此操作吗?示例:当我将组件放在表单上时,他会自动与事件建立联系?? 非常感谢。
注意:我无法重现 (How can I dynamically inject code into event handlers in Delphi?) 的示例
已编辑:
我正在尝试使用“Ritsaert Hornstra”的示例。接受答案的示例我必须扫描所有组件。
该示例仅在我激活要监视的事件组件时才有效。 示例:当我重现链接的示例时,“TIBQuery”组件具有“AfterOpen”事件不起作用。但是,如果我在组件实例运行中的该事件中添加任何内容。 他不是自动做的。 我正在使用 Delphi XE3。
编辑 2:
嗨,克雷格·杨。 今天,我有几个系统在积极生产中。 我想做的是实现系统开发时没有完成的安全日志。 这将是 Hercules 的第 13 次人工操作。 我需要做什么。 一个组件,当 adiconado 在数据模块中挂钩/附加 InterBase 数据库组件的一些事件时。 我只需要一个工作示例来完成剩下的工作。我只想知道谁做了什么,做了什么变量系统:g_s_user,g_s_date,g_s_sql。 由于几乎所有组件都连接到 TDataset,因此我打算这样做并实现该组件。
我还没有准备好代码,因为我仍然不知道该怎么做!
谢谢。
【问题讨论】:
-
由于您提供的链接的已接受答案非常有效,并且您的答案看起来像是问题的副本。您可能会展示您尝试过的方法和无效的方法。
-
您到底尝试了什么?另外,看看
TApplicationEvents的实现。 -
这些超级通用的、自动魔法的、灵丹妙药的伪解决方案正是让您在创建极其复杂、非常死板而又时遇到严重麻烦的原因脆弱的 系统。我建议您更具体地定义您要实现的目标,并针对特定问题提出特定的解决方案。例如。您可以定义自己的组件来使用,而不是使用标准的 IB 组件。您可以使用工厂在运行时创建组件;确保它们从一开始就正确配置。最合适的解决方案取决于您的问题的具体情况。