我的控件包里有个这个TStringProperty,在D5下能编译
可是在D6下提示找不到着个东东,应该怎么升级啊

解决方案 »

  1.   

    这个问题我以前遇到过不过现在已经解决了,下面我说一点我的方法。
      在Delphi5.0中,可以直接将$(DELPHI)\Source\ToolsAPI目录下的DsgnIntf.pas文件拷贝到控件的设计目录下或者拷贝到$(DELPHI)\Lib目录即可。(但这个办法不是最好,这样会造成DElphi资源混乱经。 )  
     在Delphi6.0中,Delphi中 DsgnIntf.pas文件被分解成DesignIntf.pas和DesignEditors.pas两个文件,所以引用时要将$(DELPHI)\Source\ToolsAPI目录下的DesignIntf.pas和DesignEditors.pas两个文件拷贝到控件的设计目录下或者拷贝到$(DELPHI)\Lib目录
    当然,如果你的Delphi Package的搜索路径或者Delphi IDE的搜索路径可以搜索到$(DELPHI)\Source\ToolsAPI目录就省去此麻烦。
        
        但是,在Delphi 6.0中,如果就此编译,会出现找不到Proxies.dcu文件的问题。因为Proxies被编译了,在Delphi的目录中根本就找不到此相关文件,它已经被编译到designide.dcp文件中,解决方案很简单,就是在你的Package中引用designide.dcp文件即可,具体作法是:
        Project->View Source->在requires部分加入对designide的引用即可。
        
        由于此部分文件只是在设计期间才有效,所以你的Package在设计时就要注意:
        不要在运行期间将在设计期间使用的文件加入对DesignIntf.pas和DesignEditors.pas两个文件的引用,否则依然会出现找不到Proxies.dcu文件的问题,要将文件脱离!
        
        当然,如果你的Package要在Delphi 5.0及Delphi6.0下同时能运行,那就要下点功夫通过编辑器的版本进行控制,Delphi 6.0的编辑器版本是VER140,Delphi 5.0的编辑器版本是VER130,下面是本人的一个真实的引用文件:
        uses
        Classes, {$IFDEF VER140}DesignIntf, DesignEditors{$ELSE}DsgnIntf{$ENDIF};
        
      

  2.   

    编译能通过,可是我把它放到窗体上运行,他说找不到Proxies.dcu
    怎么解决啊,