gpt4 book ai didi

delphi - 我可以让自定义 Delphi 组件向 use 子句添加多个单元吗?

转载 作者:行者123 更新时间:2023-12-03 14:37:46 24 4
gpt4 key购买 nike

我正在研究 XE2 中的一些组件。是否可以将超过组件单位的内容添加到其所在表单的使用子句中?

示例:当我从已构建并安装的包中选择 TCustomComponent 时,CustomComponent 单元将添加到表单的使用子句中。我还想添加单位 GlobalConstants。

有人知道这是否可以做到吗?

最佳答案

为您的组件创建一个设计时包(如果您还没有)。在该包中,创建一个实现 ISelectionEditor 的类接口(interface)(最简单的方法是从 TSelectionEditor 类派生),覆盖其虚拟 RequiresUnits()方法来报告您希望出现在使用您的组件的任何 Form/Frame/DataModule 的 uses 子句中的任何其他单元。然后,让包的 Register() 函数通过调用 RegisterSelectionEditor() 来注册该类。 (除了 RegisterComponents() )。

Indy 10对其 TIdTCPServerTIdCmdTCPClientTIdUDPServer 组件执行此操作,以确保 IdContext IdSocketHandle 单元被添加到 uses 子句中。查看 IdCoreSelectionEditors.pasIdRegisterCore.pas 单元,了解 Indy 如何实现这一点。

更新:IdCoreSelectionEditors.pasIdProtocolsSelectionEditors.pas 单元已于 2014 年 3 月从 Indy 10 中删除。所有每个组件SelectionEditor 类被替换为在 IdRegisterCore 单元本身中实现的新的单个类。这个新的 SelectionEditor 类是为所有 Indy 组件注册的,它会查找在设计时放置的任何 Indy 组件的所有实例,使用所有参数的数据类型的 RTTI 以及任何分配的事件处理程序的返回值来了解哪些实例要报告包含在 uses 子句中的单位。

关于delphi - 我可以让自定义 Delphi 组件向 use 子句添加多个单元吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14332203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com