TMyDBEvent = procedure(Sender: TObject; DataSet: TDataSet) of object;
TDataSet在db.pas中声明,我需要手动添加此单元,我想避免.
我见过这个解决方案:
How are Delphi units automatically added when a component is added to a form?
还有这个:
Can I make a custom Delphi component add multiple units to the uses clause?
那使用RegisterSelectionEditor,但是Delphi 5(我知道……)似乎没有这个单元.
我有什么选择?
解决方法 您可以使用相同的名称为组件单元中的类型添加别名:type TDataSet = Db.TDataSet;
无论何时将组件放在表单上,Delphi都应将其单元添加到uses子句中.然后,无论你是否以该形式使用Db,都有一个与Db相当的有效TDataSet.
Could there be any sIDe effects/implications/conflicts issues to such type aliasing?
从语言的角度来看,没有.
一般来说,当2个代码(有时甚至在同一个单元中)看起来使用相同的类型时,具有相同名称的类型会导致问题是不明智的,但它们实际上是内部不同的类型.但是,在这种情况下,类型实际上是相同的.
从IDE的角度来看,并不多.
>一个小问题是IDE中的“查找声明”需要额外的步骤才能达到基础类型.
>另一个问题与代码完成有关.我曾经历过,当这种稍微不同寻常的引用技术< unit-name>.< type-name>时,某些版本的Delphi偶尔会遇到代码完成的困难.用来. (我不记得Delphi 5是如何(或者甚至是)受到影响的.)
Are there any other kNown components that uses this trick?
我不知道使用该技术的任何组件.但是我在很多场合出于各种原因使用了混叠.主要是为了避免强制客户端单元的连锁依赖.
总结以上是内存溢出为你收集整理的Delphi 5组件会自动将“db.pas”单元添加到uses子句中吗?全部内容,希望文章能够帮你解决Delphi 5组件会自动将“db.pas”单元添加到uses子句中吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)