我已在包含 TNT组件的Delphi 7中注册了包 TMS Unicode Component Pack 。
这个包包含一个名为TTntCustomComboBox
的类,我用它来创建我自己的名为Combobox2
的自定义组件:
unit Combobox2;
interface
uses
Windows, Messages, Classes, Graphics, Controls, StdCtrls, ImgList, ActiveX, SysUtils, TntStdCtrls, TntWindows;
type
TCombobox2 = class(TTntCustomComboBox)
...
procedure Register;
begin
RegisterComponents('Standard', [TCombobox2]);
end;
...
我已将此组件(TCombobox2
)添加到包dclusr.dpk
。
编译dclusr.dpk
有效,但安装包会引发异常:
注册程序Combobox2.Register包C:\ program files \ Delphi7 \ Projects \ Bpl \ dclusr.bpl引发了一个异常类EFilererror:一个名为TTntCustomComboBox的类已经存在
那么,我该如何解决这个问题?
感谢您的帮助。
答案 0 :(得分:2)
错误消息表明您的软件包正在尝试注册已注册的组件,即TTntCustomComboBox
。
从细节中可以看出,为什么会发生这种情况并不明显。一个可能的原因是,如果您将TNT组件包含在包中,而不是在包的require子句中引用它。另一个可能的原因是您的Register
函数试图注册TTntCustomComboBox
。如果您TCombobox2
的实际声明是这样的话,可能会发生这种情况:
TCombobox2 = TTntCustomComboBox;
答案 1 :(得分:0)
在单位标题后输入{$ WEAKPACKAGEUNIT ON}。