怎么安装VCL? 先在本地查询该文件(一般都有),然后在delphi菜单tools/environment options/library/library path中加入该路径就可以了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先tools/environment options/library/library path加入路径然后在delphi里面打开这个文件,install通过就可以了 或把所有的dcu文件复制到lib目录 以下是在DELPHI6中安装VCL时出的错误!在Dephi6中将DsgnIntf改为:DesignIntf 仍出现错误 在Dephi6中将DsgnIntf改为: VCLEditors, DesignIntf 将 {Delphi}\Lib\designide.dcp 加入包中按此方法仍出现undeclareed identifier:tclassproperty'错误请问如何解决 回复人: ss(捧着诗集的程序员) ( ) 信誉:20 2002-05-03 21:28:00 得分:0 请问大家有没有遇到这个问题,怎么解决? Top 回复人: wangda(钱 钱 钱 钱 钱 钱 钱 钱 钱 钱) ( ) 信誉:36 2002-05-03 21:31:00 得分:0 版本不统一有办法改的上次一个多声道发声程序就是这样子的要改里面的不难可是我不是高手哈88 Top 回复人: smhpnuaa(农奴翻身感谢党) ( ) 信誉:100 2002-05-03 21:32:00 得分:0 被重命名的 DsgnIntf 及其相关变化在你的工程中对 DsgnIntf 的引用应该被改变为新的 Delphi 6 名称,DesignIntf。你也许也会需要添加DesignEditors,VCLEditors 和 RTLConsts 到你的 uses 子句。你也将需要添加 designide 到你的包的requires 列表。对 dsnide50 的引用可能也应该变为 designide,如果那没有被 Delphi 自动改变的话。任何使用 IDesigner 的运行时包需要使用 IDesignerHook 来避免运行时需要 designide。在运行时代码里,IDesignerHook 应该足够。设计时代码可以使用 IDesigner,但是应该使用类似下面的代码来从 IDesignerHook 的一个实例获得实际 IDesigner 接口。var RealDesigner: IDesigner;...SomeDesignerHook.QueryInterface(IDesigner,RealDesigner);...IDesignerHook 仅要求 Classes 和 Forms 单元可用。IDesigner 需要 DesignIntf,后者包含了许多其它包,而其中一些可能不是可重新分发的。组件编辑器的变化类 TComponentEditor 在 Delphi 6 里有不同的祖先系。在 Delphi 5 里,它从 TInterfacedObject 继承;现在它从一个新的类 TBaseComponentEditor 继承。类 TComponentEditorClass 现在也是 TBaseComponentEditor 而不是 TComponentEditor 的一个类。这些层次体系上的变化会要求你修改你的旧的 Delphi 工程。TDesignWindow 的变化关于类 TDesignWindow,存在大量变化。它已经被移动到 DesignWindows 单元,并且它的 FormClosed 方法已经被 DesignerClosed 替代。过去,你可以通过使用 AForm 参数在 FormClosed 里获得对表单的访问。现在,在 DesignerClosed 里,你必须使用 Designer 的 Root 属性来访问表单。在 FormClosed 里,你可以通过调用 TDesignerSelectionList.Create 或 TComponentList.Create 创建选择列表。为在 DesignerClosed 里创建选择列表,你必须使用一个 IDesignerSelections 接口。你可以使用CreateSelectionList 函数创建一个。SelectionClosed 方法的参数也和 Delphi 5 里不一样。 Top 回复人: smhpnuaa(农奴翻身感谢党) ( ) 信誉:100 2002-05-03 21:35:00 得分:0 Delphi中用户可以自己声明属性编辑器在程序设计期间对第三方控件进行设计,对属性编辑器的声明可以在注册控件的时候通过RegisterComponentEditor过程进行定义,具体为: procedure RegisterComponentEditor(ComponentClass: TComponentClass; ComponentEditor: TComponentEditorClass); 当然,用户在注册前要定义自己的属性编辑器,下面是一个例子: TOutlookBarEditor = class(TComponentEditor) function GetVerb(Index: Integer): string; override; function GetVerbCount: Integer; override ; procedure Edit; override; procedure ExecuteVerb(Index: Integer); override; end; 其中最关键的部分在于对RegisterComponentEditor的引用。 在Delphi5.0中,可以直接将$(DELPHI)\Source\ToolsAPI目录下的DsgnIntf.pas文件拷贝到控件的设计目录下或者拷贝到$(DELPHI)\Lib目录即可。 在Delphi6.0中,Delphi将文件分解成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}; Package部分由于版本不同而对不同的版本要进行不同的设计,再此就不叙述了! 其它补记:由于Delphi 5.0和Delphi 6.0对过程及参数的定义区域不同而出现错误,所以在编写两个版本的Package时一定要注意引用虚函数时出现的问题。例如对TControl控件的SetAutoSize(Value: Boolean)过程的引用: 在Delphi 5.0中定义为: private procedure SetAutoSize(Value: Boolean); 而在Delphi 6.0中定义为: protected procedure SetAutoSize(Value: Boolean); virtual; 此时的定义要根据自己的实际情况定义了,可不能随便定义了! Top 回复人: tazhch(鸭) ( ) 信誉:100 2002-05-03 21:36:00 得分:0 我在DELPHI5下写了一个控件,用到DsgnIntf但到DELPHI6下无法编译,我把DsgnIntf改为:DesignIntf 还是出错,信息:找不到什么*。DCU再改,在USES里去掉哪个找DCU的单元,屏蔽点出错的代码就可以了,你不妨试一试 关于delphi中的消息传送问题 TBits和TRecall类,高手请进 动态更新series类型 串口问题 急等 迷途的羔羊~~需要大家的帮忙~~~ 请问listview的排序问题!!!!!!!!!!???????????????????????????? 数据库连接问题,这是为什么啊!谁能解释???? 为什么while循环条件中加个and就报错 *****23****分,垂手可得 访问网络数据库,访问被拒绝。但在用户机上建立odbc 数据源文件,就可以使用了。 关于listview中的columns 简单问题? ListView1与ListView2 之间Item的移动
在Dephi6中将DsgnIntf改为: VCLEditors, DesignIntf 将 {Delphi}\Lib\designide.dcp 加入包中按此方法仍出现undeclareed identifier:tclassproperty'错误请问如何解决
回复人: ss(捧着诗集的程序员) ( ) 信誉:20 2002-05-03 21:28:00 得分:0
请问大家有没有遇到这个问题,怎么解决?
Top
回复人: wangda(钱 钱 钱 钱 钱 钱 钱 钱 钱 钱) ( ) 信誉:36 2002-05-03 21:31:00 得分:0
版本不统一
有办法改的
上次一个多声道发声程序就是这样子的
要改里面的
不难
可是我不是高手
哈
88
Top
回复人: smhpnuaa(农奴翻身感谢党) ( ) 信誉:100 2002-05-03 21:32:00 得分:0
被重命名的 DsgnIntf 及其相关变化在你的工程中对 DsgnIntf 的引用应该被改变为新的 Delphi 6 名称,DesignIntf。你也许也会需要添加DesignEditors,VCLEditors 和 RTLConsts 到你的 uses 子句。你也将需要添加 designide 到你的包的requires 列表。对 dsnide50 的引用可能也应该变为 designide,如果那没有被 Delphi 自动改变的话。任何使用 IDesigner 的运行时包需要使用 IDesignerHook 来避免运行时需要 designide。在运行时代码里,IDesignerHook 应该足够。设计时代码可以使用 IDesigner,但是应该使用类似下面的代码来从 IDesignerHook 的一个实例获得实际 IDesigner 接口。var
RealDesigner: IDesigner;
...
SomeDesignerHook.QueryInterface(IDesigner,RealDesigner);
...
IDesignerHook 仅要求 Classes 和 Forms 单元可用。IDesigner 需要 DesignIntf,后者包含了许多其它包,而其中一些可能不是可重新分发的。组件编辑器的变化类 TComponentEditor 在 Delphi 6 里有不同的祖先系。在 Delphi 5 里,它从 TInterfacedObject 继承;现在它从一个新的类 TBaseComponentEditor 继承。类 TComponentEditorClass 现在也是 TBaseComponentEditor 而不是 TComponentEditor 的一个类。这些层次体系上的变化会要求你修改你的旧的 Delphi 工程。TDesignWindow 的变化关于类 TDesignWindow,存在大量变化。它已经被移动到 DesignWindows 单元,并且它的 FormClosed 方法已经被 DesignerClosed 替代。过去,你可以通过使用 AForm 参数在 FormClosed 里获得对表单的访问。现在,在 DesignerClosed 里,你必须使用 Designer 的 Root 属性来访问表单。在 FormClosed 里,你可以通过调用 TDesignerSelectionList.Create 或 TComponentList.Create 创建选择列表。为在 DesignerClosed 里创建选择列表,你必须使用一个 IDesignerSelections 接口。你可以使用CreateSelectionList 函数创建一个。SelectionClosed 方法的参数也和 Delphi 5 里不一样。
Top
回复人: smhpnuaa(农奴翻身感谢党) ( ) 信誉:100 2002-05-03 21:35:00 得分:0
Delphi中用户可以自己声明属性编辑器在程序设计期间对第三方控件进行设计,对属性编辑器的声明可以在注册控件的时候通过RegisterComponentEditor过程进行定义,具体为:
procedure RegisterComponentEditor(ComponentClass: TComponentClass; ComponentEditor: TComponentEditorClass);
当然,用户在注册前要定义自己的属性编辑器,下面是一个例子:
TOutlookBarEditor = class(TComponentEditor)
function GetVerb(Index: Integer): string; override;
function GetVerbCount: Integer; override ;
procedure Edit; override;
procedure ExecuteVerb(Index: Integer); override;
end; 其中最关键的部分在于对RegisterComponentEditor的引用。
在Delphi5.0中,可以直接将$(DELPHI)\Source\ToolsAPI目录下的DsgnIntf.pas文件拷贝到控件的设计目录下或者拷贝到$(DELPHI)\Lib目录即可。
在Delphi6.0中,Delphi将文件分解成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}; Package部分由于版本不同而对不同的版本要进行不同的设计,再此就不叙述了!
其它补记:由于Delphi 5.0和Delphi 6.0对过程及参数的定义区域不同而出现错误,所以在编写两个版本的Package时一定要注意引用虚函数时出现的问题。例如对TControl控件的SetAutoSize(Value: Boolean)过程的引用:
在Delphi 5.0中定义为:
private
procedure SetAutoSize(Value: Boolean);
而在Delphi 6.0中定义为:
protected
procedure SetAutoSize(Value: Boolean); virtual;
此时的定义要根据自己的实际情况定义了,可不能随便定义了!
Top
回复人: tazhch(鸭) ( ) 信誉:100 2002-05-03 21:36:00 得分:0
我在DELPHI5下写了一个控件,用到DsgnIntf但到DELPHI6下无法编译,
我把DsgnIntf改为:DesignIntf 还是出错,信息:找不到什么*。DCU
再改,在USES里去掉哪个找DCU的单元,屏蔽点出错的代码就可以了,
你不妨试一试