E2017 ポインタ型が必要です (Delphi)

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

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

このエラーメッセージは,ポインタでないオペランドに逆参照演算子「^」を適用したときと,非常に特殊な場合として「raise <exception> at <address>」文の第 2 オペランドがポインタでないときに表示されます。


program Produce;
var
  C: TObject;
begin
  C^.Destroy;
end.

{ クラス型が内部的には実際の情報へのポインタとして実装されていても,逆参照演算子をソースレベルでクラス型に適用するのは違法である。コンパイラは必要であれば自動的に逆参照をするので不必要でもある }


program Solve;
var
  C: TObject;
begin
  C.Destroy;
end.

{ 単に逆参照演算子を入れないでおけばコンパイラが自動的に正しく処理する }