Jam*_*amo 13 delphi packages custom-component
(更多包/组件为我安装乐趣 - 感谢大家为您提供的所有帮助).
我在Delphi 2007中将错误列为标题.包A是我的基于框架的"查看器面板"包.包B是含有几个组件,这些组件用于显示关于链接到数据库gven(它们的SQL,状态,类型,等),其中之一是一个非可视组件数据集的信息的包(我们将称之为Inspector)创建并调用显示该信息的表单.单位X是该表格的单位.
我加入了督察组分在包我的观众面板之一,但此后删除了它,并不能找到在查看源代码,为项目的任何引用,也不在基于帧的查看器面板的单位我把它添加到.引用隐藏在哪里?
另外,将Inspector组件添加到其中一个视图面板框架(也作为已注册的组件安装)会导致此问题?
这可能与之前的问题和这个问题有关,但我决定从这个特定的symtpom /问题开始,只是为了保持简洁明了,希望以后对其他人有用.在此先感谢您的帮助.
更新:
感谢Loren,我能够找到并删除仍然存在并导致问题的USES引用.但是,我仍然不清楚如何完成我想要完成的任务.:\这是最新的:
Inspector是一个简单的非可视组件,它包含一个DataSet属性和一个内部"Info Form".调用ShowInfo方法会创建表单,并使用与链接的DataSet相关的各种信息填充该表单.我想用它来调试驱动观众的SQL.
如上所述,Inspector包含在包B中.查看器位于包A中.我想在某些TFrame后代(注册为真正的调色板组件)上使用Inspector组件.当我将该组件放在给定的TFrame上然后使用它,并编译/安装包A时,我得到"无法加载包A,它包含单元X,它也包含在包B中"错误.它现在显然是原因,我可以按需重新创建问题.
moobaa的建议在下面是有道理的,但似乎即使我试图做他所建议的方法#2,它也行不通.我错过了什么?看起来这应该是可行的,事实上,似乎我见过的大多数软件包一直使用其他已安装的软件包(包括VCL本身).
注意:据我所知,包B不依赖于包A(我已经单独安装它,所以这似乎同意).
(顺便说一句,是否有任何工具来"规划"这样的包依赖?我正在使用D2007)
一如既往,感谢您的时间和帮助.
它也可能与这个问题有关.
单元X显然与两个包都链接在一起.有几种方法可以解决这个问题:
如果在包B代码中明确提到了查看器,那么包B肯定应该使用包A(即,那里应该存在显式依赖).如果未明确指出共享代码的指示,B会将其自己的代码版本编译为B,从而导致您遇到的问题.
现在,如果该依赖项是正常的,则从包B添加对包A的引用应立即清除此问题; 毕竟,B将"使用"包A中的代码,并且相同的单元将不会被编译成两个包.但是,如果这引入了循环引用(我不记得A是否使用B),那么您可能需要进行一些重构:}
归档时间: |
|
查看次数: |
16858 次 |
最近记录: |