摘要
有没有用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