2013-08-18 46 views
0

我有一个DLL(创建于德尔福),包括TGlobalForm从TForm的如何inherite德尔福DLL中的自定义窗体(可视化继承)在我德尔福项目

继承

我想用我的项目中TGlobalForm( Delphi Project),并从TGlobalForm继承一些表单。

例 TAccountsForm = A类(TGlobalForm)

的问题是,我不希望使用PAS项目 的使用文件的GlobalForm,我希望它是当你创建一个新的像(File-> New-> Other),然后在(Delphi Projects)节点下选择(可继承的Items),这样新创建的表单将显示继承的表单(TGlobalForm)的项目(Buttons,Edits ...)

如何做到这一点?

我用Delphi XE3 - VCL项目

谢谢。

回答

6

从DLL导入和使用VCL对象是不可能的。当您尝试这样做时,最终会得到两个不同的VCL实例,包括导入表单类型的两个不同版本。有DLL中的版本和应用程序中的版本。它们是截然不同的,并且这种类型的两个版本太多了。

从另一个模块导入复杂类型的支持方式是使用包。如果你不想使用包,那么你将不得不使用某种形式的跨越DLL模块边界的互操作。例如,COM接口。

+0

虽然他建议他在问题中拥有GlobalForm.pas文件本身。不知道在这种情况下DLL与它有什么关系,尽管 –

+0

@Matt这是表单的源文件。它被编译到DLL中。他也想避免将其编译到应用程序中。但那不可能。包是将VCL对象放入不同模块所需的。 –

+0

@DavidHeffernan你能提供任何使用包的例子吗?如果它很难,请给我更多详细信息或链接,了解如何使用Delphi包进行可视化继承。 – user1512094