Del*_*ber 13 delphi components
我正在研究XE2中的一些组件.是否可以将更多组件的单元添加到它所放置的表单的uses子句中?
示例:当我从已构建并安装的包中选择TCustomComponent时,CustomComponent将添加到表单的uses子句中.我还想添加单元GlobalConstants.
有谁知道这是否可以做到?
Rem*_*eau 16
为您的组件创建一个设计时包(如果您还没有).在该包中,创建一个实现ISelectionEditor接口的类(最简单的方法是从TSelectionEditor类派生),重写其虚拟RequiresUnits()方法以报告要在uses使用组件的任何Form/Frame/DataModule 的子句中出现的任何其他单元.然后,让你的包的Register()函数通过调用RegisterSelectionEditor()(除此之外RegisterComponents())注册该类.
印第10正是这一点为它TIdTCPServer,TIdCmdTCPClient和TIdUDPServer组件,以确保IdContext和IdSocketHandle单位被添加到uses条款.看看IdCoreSelectionEditors.pas和IdRegisterCore.pas单位,看看Indy如何实现这一点.
更新:2014年3月从Indy 10中删除了单位IdCoreSelectionEditors.pas和IdProtocolsSelectionEditors.pas单位.所有每个组件的SelectionEditor类都被替换为IdRegisterCore单元本身实现的新单个类.这个新的SelectionEditor类为所有Indy组件注册,它查找在设计时放置的任何Indy组件的所有实例,使用所有参数的数据类型的RTTI并返回任何已分配事件处理程序的值以了解哪些报告列入该uses条款的单位.
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |