控件引用的问题(50分)

  • 主题发起人 主题发起人 zoming
  • 开始时间 开始时间
Z

zoming

Unregistered / Unconfirmed
GUEST, unregistred user!
我自己编写了一组控件,由Delphi5升级到delphi6,控件安装成功。
大部分控件都可以正常使用,只有包含属性编辑器的控件不能引用,引用控件的程序编译时报
“[Fatal Error] Main.pas(16): File not found: 'DesignIntf.dcu'”
不知是何故,请高手告知,谢谢!!!
 
dcu文件名不一样.
 
单元DsgnIntf改名及相关变化

程序中对于DsgnIntf的引用,需要改为对一个新的单元的引用:DesignIntf。可能还得加上DesignEditors、Editors 和RTLConsts 几个单元到你的引用列表中。除此之
外你还得将designide加入到你的包的Requires的列表中。另外,对dsnide50的引用可能得手动改为DesignIde,如果Delphi没有自动更改的话。

任何引用了IDesigner的运行期包,需要改为IDesignerHook以防止运行期时对于designide单元的引用要求。在运行期代码中,IDesignerHook 功能足够使用,
无需担心。设计期时可以使用IDesigner,如以下代码一样:

var



RealDesigner: IDesigner;

...

SomeDesignerHook.QueryInterface(IDesigner,RealDesigner);

...

来获得IDesignerHook 提供的IDesigner的接口。IDesinerHook的使用只需要引用Classes和Forms两个单元。但是IDesigner还得加上DesignIntf单元
,由于该单元被包含在许多其它包中,而其中的一些包可能是不能二次分发的。

也就是说,它是用于设计阶段的。在D5是用dsgnitf.dcu.D6则有改变。
在delphi5中,用windows的查找功能,查找DsgnIntf.pas ,将这个文件拷入delphi5/lib目录即可,
也可以建一个工程,将DsgnIntf.pas这个单元编译到delphi5/lib目录中

在delphi6中,用windows的查找功能,查找DesignIntf.pas (注意:d6将DsgnIntf.pas 改名为
DesignIntf.pas了) ,将这个文件改名为DsgnIntf.pas , 同时打开这个单元将单元名从
unit DesignIntf 改为unit DsgnIntf, 最后拷入delphi6/lib目录即可;
也可以建一个工程,将DsgnIntf.pas这个单元编译到delphi6/lib目录中。
 
在D5里是dsgnintf但在D6里叫designIntf,是文件名的缘故。
改程序或者copy成需要的那个文件名。
 
'DesignIntf.dcu'文件
的路径不对,
project -> option -> directories -> Serch Path
 
关键我的控件已经编译成功也安装上了,是我在引用控件时报的错
 
我明白了,将属性编辑器与控件分成两个独立单元就可以了..
 
后退
顶部