我正在Delphi 2007中编写一个包含一个组件和几个类的包。我想“安装”类和组件。
更确切地说:当安装组件时,单元以某种方式进行注册,这样就不必将其路径添加到项目中的搜索路径。我还想用一些不包含组件的额外单元来做这件事:如果我能以某种方式注册包的根,我就完成了。这可能吗?
编辑:一句话的目标是: 如果某人安装了我的软件包,则无需将包中的单元添加到Delphi的库路径中(因此不必手动完成)。
答案 0 :(得分:3)
更确切地说:当一个组件 安装,单位是以某种方式 注册使它不是 必须添加其路径 项目中的搜索路径。
该单位未在任何地方注册。安装组件时,IDE所在的bpl软件包将在IDE启动时添加到已知软件包列表中,它将调用每个已知软件包中的所有注册过程(请注意大写R)。这些注册过程包含用于获取在工具选项板上注册的组件的代码。
如果正确设置了组件包,IDE将在表单上删除组件时知道要添加到表单的uses子句的单元。
环境选项中的库路径不是所有这些的一部分。如果通过安装组件进行修改,那么除了将组件的bpl添加到IDE之外,组件的安装程序还要将其作为单独的操作完成。
答案 1 :(得分:1)
当我创建一个简单的组件包时,我通常将“Unit Output Directory”包选项设置为$(BDSCOMMONDIR)\ Dcp,而不是向Library路径添加路径 - 它更简单。您可以下载我的ksTools package作为示例 - 它是带有详细安装说明的纯源代码包
答案 2 :(得分:0)
是否会将其添加到dcluser.dpk
并为您编制足够的内容?
答案 3 :(得分:0)
IDE还需要知道存储与程序包关联的DCU的位置。这意味着必须将实际路径(DCU所在的位置)添加到IDE的“库路径”,或将它们存储在已注册为库路径的位置。