Man muß nur Einiges beachten.
Es geht nur mit Objekten, bzw. Zeigertypen (Interfaces, Pointer usw.)
Records gehen nicht, da dort deren Größe sonst noch nicht verfügbar ist.
Und das Ganze
muß in einem Type-Block stehen, ohne Unterbrechung.
Delphi-Quellcode:
type
TMyClass = class; // die Forwad-Deklaration
PMyRecordForward = ^TMyRecord;
TMyRecord = record // oder object;
...
MyRec: TMyRecord; // geht nicht
NextRec: PMyRecord; // geht
PrevRec: ^TMyRecord; // geht auch
MyObj: TMyClass; // geht, da per Forward deklariert
...
end;
PMyRecord = ^TMyRecord;
TMyClass = class
...
MyObj: TMyClass; // geht, selbst ohne Forward-Deklaration
...
end;