DLL中的ParentWindow

时间:2010-03-02 19:12:26

标签: delphi dll

我正在尝试将ParentWindow分配给在dll中创建的控件。控件是一个编辑器,我需要处理一个文本文件,但是这个控件需要一个ParentWindow。

如果我在dll中创建此控件,我该如何解决这个问题?

我正在使用Delphi 5。

4 个答案:

答案 0 :(得分:0)

还在dll中创建TForm(可能不是Visible)然后控件并将其添加到表单

答案 1 :(得分:0)

这是一个常见问题,正确答案是“不要那样做”。

我遇到的第一个问题是“为什么你觉得需要在DLL中创建一个控件?”为什么不在代码中创建它或在EXE中包含控件本身?

其次,如果要将控件添加到单独的二进制文件中,而是将其添加到Package中。软件包专门设计用于使导出控件简单易用。

答案 2 :(得分:0)

你需要从某个地方获取父窗口!通常,加载和调用DLL的主机应用程序将提供窗口句柄。看起来您的DLL为应用程序提供了自定义控件,因此应用程序当然需要提供父窗口句柄。

此外,您通常还需要一个窗口句柄来处理整个应用程序,在您在DLL中执行任何其他操作之前,您将其设置为Application.Handle。

答案 3 :(得分:0)

好的,想知道你的答案,我已经解决了(在第一次回答前几分钟)。

首先,我需要解释为什么我不嵌入,这是因为客户问我这样。

解决方案是将我的表单句柄发送到我的dll作为参数,经过测试后,我没有错误...

只修改我的过程的原型,将HWND作为参数接收到我的控件的ParentWindow prop(在内存中创建)。 就是这样。

相关问题