0

TNT コンポーネントを含む Delphi 7 にパッケージTMS Unicode Component Packを登録しました。このパッケージには、 という名前の独自のカスタム コンポーネントを作成するために使用するという名前のクラスが含まれています。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は機能しますが、パッケージをインストールすると例外が発生します:

登録手順 Combobox2.Register in パッケージ C:\program files\Delphi7\Projects\Bpl\dclusr.bpl で例外クラス EFilererror が発生しました: TTntCustomComboBox という名前のクラスが既に存在します

それで、どうすればそれを修正できますか?

手伝ってくれてありがとう。

4

2 に答える 2

2

このエラー メッセージは、パッケージが既に登録されているコンポーネント、つまり を登録しようとしていることを示していますTTntCustomComboBox

あなたが提供した詳細から、なぜこれが起こるのかは明らかではありません。考えられる理由の 1 つは、パッケージの requires 句で TNT コンポーネントを参照する代わりに、パッケージに TNT コンポーネントを含めた場合です。別の考えられる理由は、Register関数が を登録しようとした場合TTntCustomComboBoxです。これは、実際の宣言TCombobox2が次のような場合に発生する可能性があります。

TCombobox2 = TTntCustomComboBox;
于 2013-01-07T18:19:10.273 に答える
0

ユニット キャプションの後に {$WEAKPACKAGEUNIT ON} を付けます。

于 2014-06-26T00:23:27.300 に答える