【问题标题】:Delphi OnDeactivate not working on forms from dll fileDelphi OnDeactivate 无法处理来自 dll 文件的表单
【发布时间】:2012-03-24 23:35:14
【问题描述】:

我正在尝试在作为 dll 库一部分的表单上调用 onDeactivate 事件。当表单失去焦点到另一个应用程序时,OnDeactivate 不起作用是一个已知问题。不幸的是,Delphi 似乎将 dll 库中的表单视为其他应用程序。

我需要一些解决方法。

【问题讨论】:

  • 您必须通知 DLL 中的 VCL 实例它是另一个应用程序的一部分。通过将Application.Handle 设置为MainForm.Handle 来做到这一点,其中MainForm 是应用程序的主要形式。您需要为您的应用构建一种机制,以将其主窗体的句柄传递给 DLL。这也是为什么在这类东西上包比 DLL 更受青睐的另一个原因。

标签: delphi events dll


【解决方案1】:

我来晚了,但我找到了解决方法:

在打开的表单上放置一个计时器,每 1000 毫秒触发一次事件,然后从表单中检查属性 Active

例子:

if not form.Active then
   myDeactivadEvend();

【讨论】:

    【解决方案2】:

    还没有解决。 OnDeactivate 不起作用,因为主应用程序被视为另一个程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      • 2011-09-01
      • 2012-04-05
      • 1970-01-01
      • 1970-01-01
      • 2019-05-23
      • 1970-01-01
      相关资源
      最近更新 更多