Delphi组件创建设计时间

时间:2017-08-16 17:19:59

标签: delphi

到目前为止,为了简单起见,我总是创建Desingtime和Runtime的组件,并且我已经使用了组件向导。它工作正常,但我发现分离运行时和设计时更好。

enter image description here

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

type
 TFraction = class(TComponent)
 end;

dclFrazioni只是Designtime。我正在阅读德尔福的更多编码,尼克说:

  

设计时包的第一件事就是设置它的需求   条款

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

仅限设计时的包只会有Register程序。所以基本上:

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

我迷失了,因为我不知道如何联系他们。

2 个答案:

答案 0 :(得分:4)

您可以通过将运行时包的名称添加到designtime包的项目文件的SELECT ISNULL(G.[Name], 'N/A') AS Name, ISNULL(G.[ID], 'N/A') AS ID, IIF(G.ID IS NULL, 'N/A', A.IName) AS IName, IIF(G.ID IS NULL, 'N/A', A.ItID) AS ItID, IIF(G.ID IS NULL, 0, COUNT(A.IHid) OVER()) AS ICount, G.[AllComplete], G.[IComplete], ISNULL(G.[IStatus], 'N/A') AS IStatus, IIF(G.ID IS NULL, 'N/A', A.[Group]) AS [Group], IIF(G.ID IS NULL, 'N/A', A.[Status]) AS [Status], IIF(G.ID IS NULL, 'N/A', A.[Type]) AS [Type] FROM TableA A LEFT JOIN TableG G ON A.ID = G.ID WHERE A.[ID] = ('048') -- replaced here G.ID with A.ID, since these need to be equal AND NOT A.ItID = '' AND NOT A.[Status] IN ('NA') 部分来将您的设计时包链接到您的运行时包。

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

  1. 右键点击requires
  2. 点击dclFrazioni.bpl窗口中的View Source
  3. Project Manager(哪个是您的运行时包)添加到Frazioni部分。
  4. 生成的文件应如下所示:

    requires

答案 1 :(得分:3)

在屏幕截图中,它列出了名为Requires for your design package的树视图项。您可以右键单击IIRC并选择Add Reference。然后选择您的运行时包。