d5下开发的大多数控件都是从tcomponenteditor派生的
对于在d5开发的从tcomponenteditor派生的控件,要到d6下使用,需要经过以下
几个步骤:
1、添加 lib\designide.dcp到控件的dpk文件的requires部分
2、在控件的pas源文件中凡是uses dsgnintf的地方改成uses designintf, designeditors

3.加入搜索路径
C:\Program Files\Borland\Delphi7\Source\ToolsAPI

偶测试成功, 下面还有一种方法(来至大富翁论坛), 测试失败.

---------------------------------------------------------------------------------------------------

这个问题是D6及D7才有的,原因及解决方法如下文(英文站点,看晕了)
http://community.borland.com/article/0,1410,27717,00.html
 
不改包,直接改Delphi源文件的解决方法:(我是这样改的,没有出什么问题)
1.加入搜索路径
C:\Program Files\Borland\Delphi7\Source\ToolsAPI
2.打开
C:\Program Files\Borland\Delphi7\Source\ToolsAPI\DesignEditors.pas
3.找到并把
uses
  Types, SysUtils, Classes, TypInfo, Variants, DesignIntf, DesignMenus,Proxies;
改为
uses
  Types, SysUtils, Classes, TypInfo, Variants, DesignIntf, DesignMenus{,Proxies};
4.找到并把
      if (FAncestor = nil) and (Component <> Designer.Root)
        and IsProxyClass(Component.ClassType) then
改为
      if (FAncestor = nil) and (Component <> Designer.Root)
        {and IsProxyClass(Component.ClassType)} then
5.找到并把
  while IsProxyClass(ComponentClass) do
改为
  //while IsProxyClass(ComponentClass) do
6.保存,编译运行,OK

上面3.4.5.就是把Proxies单元从DesignEditors单元中剔除,DesignEditors单元
中只有两个地方引用了Proxies单元的函数,而且是同一个函数:IsProxyClass,把
这两个地方注释掉就可以了.



proxies.pas
Last modification:August 16th, 2009 at 12:30 pm
如果觉得我的文章对你有用,请随意赞赏