E2086 '%s' 型の宣言が完了していません (Delphi)

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

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

このエラーは現在定義中の型を参照した場合か,forward 宣言したクラス型が type 部に入っていてその型の終了宣言がない場合に発生します。


program Produce;

type
  TListEntry = record
    Next: ^TListEntry;                      (*<-- ここでエラーメッセージ*)
    Data: Integer;
  end;
  TMyClass = class;                         (*<-- ここでエラーメッセージ*)
  TMyClassRef = class of TMyClass;
  TMyClasss = class                         (*<-- タイプミス ...*)
    (*...*)
  end;

begin
end.

{ このコードは定義が完了していないレコード型を参照しようとしている。タイプミスがあるので,コンパイラは TMyClass の完全な宣言も検出できない }


program Solve;

type
  PListEntry = ^TListEntry;
  TListEntry = record
    Next: PListEntry;
    Data: Integer;
  end;
  TMyClass = class;
  TMyClassRef = class of TMyClass;
  TMyClass = class
    (*...*)
  end;

begin
end.

{ 最初の問題は補助的なポインタ型の型宣言を使用すれば解決する。2 番めの問題は TMyClass のスペルを正しく入力すれば修正される }