2017-08-16 39 views
1

到目前爲止,爲了使事情變得簡單,我一直創建的組件是Desingtime和Runtime,並且我使用了組件嚮導。它工作正常,但我看到分離運行時和設計時更好。Delphi組件創建設計時間

enter image description here

Frazioni.bpl是唯一Runtine包,它在包含一個PAS文件名爲uFraction.pas。它是一個分數的實用程序,它有這樣一個班級:

type 
TFraction = class(TComponent) 
end; 

dclFrazioni改爲Designtime而已。我讀更多的編碼在Delphi和尼克說:

的設計時包首先要做的就是設置其需要 條款

好吧,但我怎麼做到這一點?我知道我必須鏈接運行時和Designtime,但是如何?我已經構建了Frazioni.bpl,但是當我右鍵單擊dclFrazioni時,我必須添加一個引用,但我不知道如何。

designtime only包只是將有Register程序。所以基本上:

  • Frazioni.bpl =包含我需要的類的一個(或多個)pas文件的運行時,它們從TComponent繼承。
  • dclFrazioni.bpl =設計時包含了註冊程序

我迷路了,因爲我不知道如何將其鏈接的PAS文件。

+0

這不應該是放在設計界面上的組件。 –

+1

只有當您有實際的僅有設計時代的代碼時(例如組件/屬性編輯器,IDE插件等),您才需要單獨的運行時和設計時包。如果沒有包含任何設計時 - 只有它的代碼(並且簡單地調用'RegisterComponents()'不會計算在內,因爲它在運行時包中實現)。 –

+1

您可以簡單地編譯和構建運行時,右鍵單擊dcl,單擊「添加引用」,然後轉到「C:\ Users \ Public \ Documents \ RAD Studio \ xx.x \ Dcp」。 –

回答

5

通過將運行包的名稱添加到designtime包的項目文件的requires部分,可以將您的designtime包與運行包綁定。

爲此,請右鍵單擊dclFrazioni.bpl並從Project Manager窗口單擊View Source
然後,您可以將Frazioni(這是您的運行時軟件包)添加到requires部分。

生成的文件應該如下所示:

package dclFrazioni; 

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

requires 
    rtl, 
    vcl, 
    Frazioni; 

contains 
    (units...); 

end. 
+1

非常感謝,這工作! :) –

3

在你的截圖它列出了所謂的樹型視圖項目需要爲你的設計方案。 IIRC你可以右鍵單擊它並選擇添加引用。然後選擇您的運行時軟件包。

+0

我已經做了,但我找不到任何bpl文件來添加 –

+0

您的回憶是正確的。這與[其他答案](https://stackoverflow.com/a/45719698)相同,無需直接修改項目源代碼。 –

+0

它編譯?否則根本沒有DCP文件。 然後你可以在'C:\ Users \ Public \ Documents \ RAD Studio \ 11.0 \ Dcp'找到DCP文件? –