0

我已经在包含TNT 组件的 Delphi 7 中注册了包TMS Unicode 组件包。这个包包含一个名为的类,我用它来创建我自己的自定义组件,名为:TTntCustomComboBoxCombobox2

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有效,但安装软件包会引发异常:

包 C:\program files\Delphi7\Projects\Bpl\dclusr.bpl 中的注册过程 Combobox2.Register 引发异常类 EFilererror : A class named TTntCustomComboBox already exists

那么,我该如何解决呢?

感谢帮助。

4

2 回答 2

2

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

从您提供的详细信息中看不出为什么会发生这种情况。一个可能的原因是,如果您在包中包含 TNT 组件,而不是在包的 requires 子句中引用它。另一个可能的原因是您的Register函数试图注册TTntCustomComboBox. 如果您的实际声明TCombobox2是这样的,则可能会发生这种情况:

TCombobox2 = TTntCustomComboBox;
于 2013-01-07T18:19:10.273 回答
0

将 {$WEAKPACKAGEUNIT ON} 放在单位标题之后。

于 2014-06-26T00:23:27.300 回答