经常会出现添加一个自写控件后,需要添加一些其它的相关单元。例如说控件某方法用到一个ClientDataSet做参数,那么我们希望用户把控件拖到界面后,能自动添加DBClient单元。请问这个是怎么实现的呢?

解决方案 »

  1.   

    这个可能要找些RTL资料,,顶一下。
      

  2.   

    ...把控件拖到界面后,按一下保存或F9都会把单元添加到USES的吧..
      

  3.   

    这个是delphi根据你的搜索路径找到所在单元给你添加上去的
      

  4.   

    我的搜索路径肯定有DBClient的目录,可实际是没有被添加上去。我观察的结果是,只会自动添加控件各父类的所在单元。但是对于属性、参数上出现的,貌似是不会被添加的。因此不知道有没办法可以实现这点。
      

  5.   

    只知道cxGrid是可以做到的(不只添加了父类单元),不知道是我观察得不对还是另有什么设置之类呢 @_@
      

  6.   

    目前大概的结论是:
    1、继承DesignIntf.TBaseSelectionEditor类,或DesignEditors.TSelectionEditor类。
    2、实现DesignIntf.ISelectionEditor接口,在ISelectionEditor.RequiresUnits方法中回调TGetStrProc,为IDE指定所需要的单元。
    3、调用DesignIntf.RegisterSelectionEditorProc注册你实现的类。上面三步需要的单元是:DesignIntf,DesignEditors;并且必须在设计期包中实现。当然具体的还需要你去仔细研究一下。