如何在不将源文件添加到项目的情况下使用其他包中定义的模板?

时间:2016-09-05 15:35:50

标签: delphi ide

我创建了一个包含多个模板的包(TFrame后代)。 这些模板已添加到调色板中。 在其他软件包中,我正在尝试使用这些模板,但每次添加其中一个模板时,都会显示一条消息:

  

您的项目中需要以下单位:%s来创建   模板。你想加吗?

mrYes:

源文件已添加到项目中。 此外,它会在编译时导致以下错误:

  

E2200套餐'%s'已包含单位'%s'

mrNo:

没关系,但每次我放置一个问题时都会问这个问题    模板。我和我的同事将使用这些模板很多次,我真的想避免这个消息。

更新1:

以下是观察所述行为的步骤:

  1. 创建名为Package1的包项目。
  2. 添加名为MyTest的TFrame后代。
  3. 将TMyTest添加到调色板(结构窗口,右键单击,添加到 调色板)。
  4. 将项目输出目录设置为。\ out
  5. 构建项目。
  6. 将\ out添加到库路径。
  7. 在同一项目组中,创建名为Package2的包项目。
  8. 将Package1添加到“requires”(在Package2.dpk中)。
  9. 添加表单。
  10. 将TMyTestTemplate添加到表单。
  11. 更新2:

    我正在寻找适用于Delphi 2007和Delphi XE7的解决方案。

1 个答案:

答案 0 :(得分:1)

更多的工作,但应该符合您的需求:

  • 创建包FooRuntime(Mark RuntimeOnly),添加您的TMyFrame
  • 创建包FooDesignTime(Mark DesigntimeOnly),需要FooRuntime,注册您的框架
  • 安装FooDesignTime
  • 将您的其他项目链接到FooRuntime

如果没有软件包,IDE似乎无法识别这些单元。