gpt4 book ai didi

Delphi - DLL 中的表单 - 提示未显示

转载 作者:行者123 更新时间:2023-12-03 15:49:14 25 4
gpt4 key购买 nike

我在 DLL 中有一个 Delphi 表单(我知道这限制了 Delphi 对该 DLL 的使用,但在本例中这不是问题)。

DLL 导出一个函数 ShowForm,大致如下所示:

procedure ShowForm (App : TApplication);
begin
OldApp := Application;
try
Application := App;
MyForm := TMyForm.Create (nil);
try
MyForm.ShowModal;
finally
FreeAndNil (MyForm);
end;
finally
Application := OldApp;
end;
end;

现在,我在表单上使用 TAdvOfficeHint(来自 TMS 组件包)。不幸的是,提示没有显示。

我在这里遗漏了什么吗?如何使表单的行为与从主应用程序中显示它时完全相同?

谢谢!

最佳答案

我不知道TAdvOfficeHint,但我猜它会 Hook Application.OnShowHint来设置自己的THintWindowClass,即使两个主要的可执行文件和 DLL 在 TMS 单元中链接,它们各自都有自己的类副本,这就是出现问题的地方。

分配Application是不够的:还有其他全局变量,如ScreenMouse等。其他变量甚至隐藏在实现中所以我想说你使表单的行为与主应用程序完全相同的机会很小。

关于Delphi - DLL 中的表单 - 提示未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2280240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com