摘要
有沒有用Delphi了一段時間,但是,沒有發展自己的自定義可視化控件(最後一個版本我的工作是德爾福6)。
處理程序包依賴關係時有兩個問題。一種是在Delphi環境中安裝,使控件顯示在組件面板上,另外還有組件編輯器&屬性編輯器。
另一個將編譯的軟件包分發到客戶機器時。
這也取決於你正在運行的Delphi版本。
設計時間
當開發一個定製包,有一個封裝選項標籤,指示目標文件夾。
手冊通常會告訴開發人員將這些文本框留空。有時起作用,有時不起作用。我在每個文本框中寫明每個文件夾路徑。
「.dcp」文件有一個文本框路徑,其他「 .dcu」文件夾路徑等等。
如果您有可視化控件和諸如屬性編輯器或組件編輯器之類的東西,則最好將代碼拆分爲2個包(「運行時」&「Designtime」)。
我通常把delphi(packages)項目放在delphi安裝文件夾之外。
運行時間
通常,快速的方法是把 「* .bpl」 「.dcp」 文件在Windows(32)/系統文件夾,或類似的 「DLL」 windows文件夾。
包文件夾結構的源代碼建議
軟件包管理是很困難的。我不知道Embarcadero安裝過程已經改變了多少,以及Delphi的更新版本。下面的圖表是關於如何組織源代碼的一個例子。希望能幫助到你。
[-]--+--c:
.....|
.....+--[-]--+--software
.............|
.............+--[+]-----java
.............|
.............+--[+]-----php
.............|
.............+--[-]--+--delphi (not the delphi folder in program files)
.....................|
.....................+--[+]-----apps (source code for delphi programs)
.....................|
.....................+--[+]-----other
.....................|
.....................+--[-]--+--packages (all delphi packages source code here)
.............................|
.............................+--[+]-----lib (a single package for non visual controls, libraries)
.............................|
.............................+--[+]-----tools (package pair for non visual tcomponent descendants)
.............................|
.............................+--[+]-----json (example)
.............................|
.............................+--[+]-----xml (example)
.............................|
.............................+--[-]--+--mycontrols (folder custom visual controls)
.............................|.......|
.............................|.......+--[-]--+--delphi40 (folder for delphi40 version of "mycontrols")
.............................|.......|.......|
.............................|.......|.......+----------dsgvclctrls40.dpk (design-time package "mycontrols")
.............................|.......|.......|
.............................|.......|.......+----------runvclctrls40.dpk (run-time package "mycontrols")
.............................|.......|.......|
.............................|.......|.......+--[+]--+--demos (individual example for each "mycontrol")
.............................|.......|.......|
.............................|.......|.......+--[+]--+--design ("*.pas" component editors destination folder)
.............................|.......|.......|
.............................|.......|.......+--[+]--+--sources ("*.pas" source code destination folder)
.............................|.......|.......|
.............................|.......|.......+--[+]--+--bin ("*.dcu" destination folder)
.............................|.......|........
.............................|.......+--[+]--+--delphi50 (folder for delphi50 version of "mycontrols")
.............................|.......|........
.............................|.......+--[+]--+--delphi60 (folder for delphi60 version of "mycontrols")
.............................|.......|........
.............................|.......+--[+]--+--delphi70 (folder for delphi70 version of "mycontrols")
.............................|................
.............................+--[-]-----etc...
乾杯。
組件安裝是Delphi的恥辱,現在Embarcadero不斷忽略。 – kludg 2012-03-24 17:53:15
你正在做什麼類型的分發,編譯應用程序的用戶或其他開發人員在IDE中使用它們? – afrazier 2012-03-24 19:06:22
@afrazier包含其他開發人員(團隊成員)使用的控件的包。 – 2012-03-24 19:41:04