我有一个DLL和主要应用程序 在主应用程序中,我从主应用程序主窗体所拥有的面板上的DLL创建一个窗体,主窗体有其他组件(按钮)。 问题: 当我在DLL表单组件(编辑)中按下键(输入或制表符)时,主应用程序主表单将执行主表单点击事件上的键和按钮。
答案 0 :(得分:1)
问题是您的应用程序中有两个不同的VCL实例。一个在主程序中,一个在DLL中。这是不受支持的,预计很多功能都不起作用。
例如,类型标识的行为不符合您的预期。每个模块都有自己独立的VCL类型。因此,可执行文件TPanel
与DLL的TPanel
不同,依此类推。在可执行文件和DLL之间传递对象时可能会遇到严重问题,因为您可以从可执行文件中调用DLL上的方法,反之亦然。
支持的方法是使用运行时包而不是DLL。这导致所有模块共享VCL的单个实例。
如果您不想使用运行时包,那么您应该将DLL和可执行文件合并到一个可执行模块中。