E2602 手続き DISPOSE には '%s' というデストラクタ識別子が必要ですが、宣言されていない識別子 '%s' が使用されています(Delphi)

提供: RAD Studio
移動先: 案内検索

エラーと警告のメッセージ(Delphi) への移動


このエラー メッセージは、Dispose に渡されたパラメータ リスト内の識別子がデストラクタでない場合に出力されます。

 type
   PObj = ^TObj;
   TObj = object
     FData: Integer;
     destructor Finalize;
   end;
 
 var
   R: PObj;
 
 destructor TObj.Finalize;
 begin
 end;
 
 begin
   Dispose(R, Foo);  // issues error: E2602
 end.

これを解決するには、Dispose にデストラクタを渡すか、2 番目の引数を削除します。

 type
   PObj = ^TObj;
   TObj = object
     FData: Integer;
     destructor Finalize;
   end;
 
 var
   R: PObj;
 
 destructor TObj.Finalize;
 begin
 end;
 
 begin
   Dispose(R, Finalize); // ok
 end.

関連項目