zig*_*zig 5 delphi delphi-5 toolsapi
我正在编写自己的组件,我希望它"db"在interface使用子句时将其添加到表单中,因为它有一个已发布的事件,如:
TMyDBEvent = procedure(Sender: TObject; DataSet: TDataSet) of object;
Run Code Online (Sandbox Code Playgroud)
TDataSet声明db.pas,我需要手动添加此单位,我想避免.
我见过这个解决方案:
还有这个:
我可以制作一个自定义Delphi组件,将多个单元添加到uses子句中吗?
这个用途RegisterSelectionEditor,但Delphi 5(我知道......)似乎没有这个单元.
我有什么选择?
您可以使用相同的名称为组件单元内的类型设置别名:
type
TDataSet = Db.TDataSet;
Run Code Online (Sandbox Code Playgroud)
每当您将组件放到表单上时,Delphi 都应将其单元添加到 use 子句中。那么无论您是否以Db这种形式使用,都有TDataSet一个与 中的有效等效的形式Db。
这种类型别名可能有任何副作用/影响/冲突问题吗?
从语言的角度来看,没有。
一般来说,使用相同名称的类型是不明智的,因为当两段代码(有时甚至在同一单元内)似乎使用相同的类型,但它们内部实际上是不同的类型时,这可能会导致问题。然而,在这种情况下,类型实际上是相同的。
从 IDE 的角度来看,没有太多。
<unit-name>.<type-name>使用这种稍微不寻常的引用技术时,Delphi 的某些版本有时会在代码完成方面遇到困难。(我不记得 Delphi 5 是如何(或者是否)受到影响的。)还有其他已知的组件使用这个技巧吗?
我不知道有任何组件使用该技术。但我在很多场合出于各种原因使用了别名。主要是为了避免强制对客户端单元产生连锁依赖。
| 归档时间: |
|
| 查看次数: |
236 次 |
| 最近记录: |