Delphi 7中的EFilererror异常

时间:2013-01-07 17:16:48

标签: delphi delphi-7

我已在包含 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的类已经存在

那么,我该如何解决这个问题?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

错误消息表明您的软件包正在尝试注册已注册的组件,即TTntCustomComboBox

从细节中可以看出,为什么会发生这种情况并不明显。一个可能的原因是,如果您将TNT组件包含在包中,而不是在包的require子句中引用它。另一个可能的原因是您的Register函数试图注册TTntCustomComboBox。如果您TCombobox2的实际声明是这样的话,可能会发生这种情况:

TCombobox2 = TTntCustomComboBox;

答案 1 :(得分:0)

在单位标题后输入{$ WEAKPACKAGEUNIT ON}。