Delphi 5组件会自动将“db.pas”单元添加到uses子句中吗?

Delphi 5组件会自动将“db.pas”单元添加到uses子句中吗?,第1张

概述我正在编写自己的组件,我希望它将“db”单元添加到接口使用子句时,我将其放在表单上,​​因为它有一个已发布的事件,如: TMyDBEvent = procedure(Sender: TObject; DataSet: TDataSet) of object; TDataSet在db.pas中声明,我需要手动添加此单元,我想避免. 我见过这个解决方案: How are Delphi units au 我正在编写自己的组件,我希望它将“db”单元添加到接口使用子句时,我将其放在表单上,​​因为它有一个已发布的事件,如:

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子句中吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1272477.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存