E2086 Typ '%s' ist nicht vollständig definiert (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Dieser Fehler tritt auf, wenn Sie einen Typ referenzieren, der noch nicht vollständig definiert ist, oder wenn Sie in einem type-Abschnitt eine forward-Deklaration für eine Klasse verwenden, ohne später den Typ zu deklarieren.


program Produce;

type
  TListEntry = record
    Next: ^TListEntry;                      (*<-- Hier die Fehlermeldung*)
    Data: Integer;
  end;
  TMyClass = class;                         (*<-- Hier die Fehlermeldung*)
  TMyClassRef = class of TMyClass;
  TMyClasss = class                         (*<-- Schreibfehler ...*)
    (*...*)
  end;

begin
end.

In diesem Beispiel wird ein Record-Typ referenziert, der noch nicht definiert ist. Außerdem ist wegen eines Tippfehlers die Klassendeklaration von TMyClass unvollständig.


program Solve;

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

begin
end.

Als Lösung für das erste Problem können Sie eine Typdeklaration für einen Hilfszeiger einführen. Das zweite Problem wird dadurch behoben, dass TMyClass richtig geschrieben wird.