【问题标题】:Delphi component creation design timeDelphi 组件创建设计时间
【发布时间】:2018-01-24 22:49:49
【问题描述】:

到目前为止,为了让事情变得简单,我总是创建 Desingtime 和 Runtime 的组件,并且我使用了组件向导。它工作正常,但我发现将运行时和设计时分开会更好。

Frazioni.bpl 是仅 Runtine 包,它包含一个名为 uFraction.pas 的 pas 文件。它是分数的实用程序,它在这样的类中:

type
 TFraction = class(TComponent)
 end;

dclFrazioni 只是设计时。我正在阅读更多德尔福编码和尼克说:

对设计时包做的第一件事是设置它的 Requires 子句

好的,但是我该怎么做呢?我知道我必须链接运行时和设计时,但是如何?我已经构建了 Frazioni.bpl,但是当我右键单击 dclFrazioni 时,我必须添加一个引用,但我不知道如何。

仅设计时包将具有Register 过程。所以基本上:

  • Frazioni.bpl = 具有一个(或多个)包含我需要的类的 pas 文件的运行时,它们继承自 TComponent。
  • dclFrazioni.bpl = 带有包含注册过程的 pas 文件的设计时间

我迷路了,因为我不知道如何链接它们。

【问题讨论】:

  • 这不应该是您放置在设计图面上的组件。
  • 只有当你有实际的纯设计时代码时,你才需要单独的运行时和设计时包,例如组件/属性编辑器、IDE 插件等。如果有一个单独的运行时+设计时包是完全可以的它不包含任何仅设计时的代码(并且简单地调用 RegisterComponents() 不算,因为它是在运行时包中实现的)。
  • 您可以简单地编译和构建运行时,右键单击 dcl,单击“添加引用”,然后转到“C:\Users\Public\Documents\RAD Studio\xx.x\Dcp” .

标签: delphi


【解决方案1】:

您可以通过将运行时包的名称添加到设计时包的项目文件的requires 部分来将您的设计时包链接到您的运行时包。

您可以按照以下步骤进行操作:

  1. 右击dclFrazioni.bpl
  2. Project Manager 窗口中单击View Source
  3. Frazioni(这是您的运行时包)添加到requires 部分。

生成的文件应如下所示:

package dclFrazioni;

{$R *.res}
....
{$IMPLICITBUILD OFF}

requires
  rtl,
  vcl,
  Frazioni;

contains
  (units...);

end.

【讨论】:

    【解决方案2】:

    在您的屏幕截图中,它为您的设计包列出了名为 Requires 的树视图项。 IIRC,您可以右键单击它并选择添加引用。然后选择你的运行时包。

    【讨论】:

    • 我已经这样做了,但我找不到任何要添加的 bpl 文件
    • 您的记忆是正确的。这与other answer 实现相同,无需直接修改项目源。
    • 它可以编译吗?否则根本不会有 DCP 文件。然后就可以在C:\Users\Public\Documents\RAD Studio\11.0\Dcp附近找到DCP文件了?
    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 2015-08-27
    • 1970-01-01
    • 2021-09-20
    相关资源
    最近更新 更多