【发布时间】:2025-12-12 22:40:02
【问题描述】:
(对我来说更多的包/组件安装乐趣——感谢大家迄今为止的所有帮助)。
我在 Delphi 2007 中将错误列为标题。包 A 是我的基于框架的“查看器面板”包。包 B 是一个包含几个组件的包,这些组件用于显示有关链接到 gven 数据库的数据集的信息(它们的 SQL、状态、类类型等),其中一个是非可视组件(我们称之为检查员)创建并调用显示该信息的表单。单位 X 是该表格的单位。
我将 Inspector 组件添加到 Package 中的一个查看器面板中,但已将其删除,并且在项目的 View Source 中找不到对它的任何引用,也无法在我添加的基于框架的查看器面板的单元中找到它到。引用隐藏在哪里?
另外,将 Inspector 组件添加到其中一个视图面板框架(也作为注册组件安装)会导致此问题吗?
这可能也与this previous question 和this one 有关,但我决定从这个特定的症状/问题重新开始,只是为了保持简洁明了,希望以后对其他人有用。提前感谢您的任何帮助。
更新:
感谢 Loren,我能够找到并删除保留并导致问题的 USES 引用。但是,我仍然不清楚如何完成我想要完成的事情。 : \ 这是最新的:
Inspector 是一个简单的非可视组件,它包含一个 DataSet 属性和一个内部“信息表单”。调用 ShowInfo 方法会创建表单,并使用与链接的 DataSet 相关的各种信息填充它。我想用它来调试驱动查看器的 SQL。
如上所述,Inspector 包含在包 B 中。查看器在包 A 中。我想在一些 TFrame 后代(注册为真正的调色板组件)上使用 Inspector 组件。当我将该组件放在给定的 TFrame 上以使用它并编译/安装包 A 时,我收到“无法加载包 A,它包含单元 X,它也包含在包 B 中”错误。现在很明显是原因所在,我可以按需重新创建问题。
moobaa 的以下建议是有道理的,但 似乎 即使我尝试按照他的建议执行方法 #2,它也不起作用。我错过了什么?看起来这应该是可行的,事实上,我见过的大多数软件包似乎一直都在使用其他已安装的软件包(包括 VCL 本身)。
注意:据我所知,包 B 不依赖于包 A(而且我已经单独安装了它,所以这似乎是一致的)。
(顺便说一句,是否有任何工具可以像这样“绘制”包依赖项?我使用的是 D2007)
一如既往,感谢您的时间和帮助。
【问题讨论】:
-
在您的情况下,包 A 和 B 是什么?我得到了同样的错误:无法加载包'Abbrevia160'。它包含单元“AbDfBase”,该单元也包含在包“Abbrevia”中。 Abbrevia 和 Abbrevia160 是完全相同的软件包。 160 只是一个后缀......有什么想法吗?
标签: delphi packages custom-component