自己设计了一个控件,其中涉及到设计期属性编辑,提示找不到Proxies,后查资料将designide引入到Package中,编译通过。但在新建的工程中加入这个控件,还是提示,没有找到Proxies,因为Delphi6中没有designide.bpl,将designide60.bpl加入后问题依旧,怎么解决?谢谢

解决方案 »

  1.   

    我使用Build with runtime package,将designide加入到程序中,编译通过了,但这样很麻烦,有没有其它办法?
      

  2.   

    包含DesignIntf,DesignEditors;这两个文件
      

  3.   

    //节选自我的文章中的一部分对你有帮助
    在delphi5中在DsgnIntf单元,在delphi7中在DesignIntf单元,注意:delphi的一些单元并没有被安装,包括我们这里指出的这两个单元和将要在后文中指出的单元,这些单元属于delphi的open tools api是用来方便我们,特别是组件开发者用来扩展delphi。如果你的delphi没有这些单元,请将delphi安装目录下的source文件夹里ToolsAPI文件夹中的pas文件拷贝到lib目录下,在你第一个需要用到这些单元的程序编译时delphi会自动编译这些单元
      

  4.   

    在D6中没有DesignIntf.PAS这个文件呐,直接加入DESIGNEDITOR.PAS也会报错.
    该怎么办?
      

  5.   

    Delphi6\Source\ToolsAPI
     fengyvn(秋波就是秋天的菠菜) 老大看看这下面有没有
      

  6.   

    DesignIntf,DesignEditors这两个单元不要出现在运行期使用的单元uses列表中。
    其实这个问题并不复杂,不过我说起来就困难了~你可以找找自己的delphi资料集,比如超级猛料?用Proxies检索,答案很清楚了。
      

  7.   

    找到了.
    多谢Cstarter(山望).
      

  8.   

    不知道楼主的问题解决了没有啊,
    我这里很好用,在D6和WIN2KSERVER下面
      

  9.   

    http://www.csdn.net/Develop/read_article.asp?id=21165
    且当作参考吧
      

  10.   

    非常感谢大家的回答,我在网上找到的文章没有想到就是hkbarton(宁静至远||淡泊明志)的,真是幸会。
    我已经按照大家的办法做了,问题还是依旧
    查了一下超级猛料,里面有这样一段,不知道什么意思,
    不要在运行期间将在进行期间使用的文件加入对DesignIntf.pas和DesignEditors.pas两个文件的引用,否则依然会出现找不到Proxies.dcu文件的问题,要将文件脱离!
    我后来的解决办法是将文件中包含的Proxies删掉,同时也注释掉了
    //  while IsProxyClass(ComponentClass) do
    //    ComponentClass := TComponentClass(ComponentClass.ClassParent);
    不知道是不是有后遗症
      

  11.   

    就是说不要在你的pas文件uses DesignIntf.pas和DesignEditors.pas,若要RegisterComponentEditor就单独用一个pas文件,在这里uses DesignIntf.pas和DesignEditors.pas
      

  12.   

    非常感谢大家很耐心的指导,非常感谢。Cstarter的贴子我看了,昨天我看的时候贴子还没有通过审批,所以看不了。在Cstarter的提示下我现在问题解决了,是因为我将ToolsAPI中的DesignIntf.pas,DesignEditors.pas两个文件拷贝到了当前的目录下,所以编译的时候就会重新编译这两个文件,其实只需要将designide引入到Package中就可以了。