Ich würde TFisch, TFischListe und TTeich in die gleiche
Unit setzen.
Dann kann man eine "Forward Declaration" ansetzen:
Delphi-Quellcode:
type
TFisch = class; // "es gibt eine Klasse TFisch; Genaueres folgt weiter unten"
TFischListe = class;
TTeich = class;
TFisch = class(TObject)
Art: String;
Gewicht: Integer;
Teich: TTeich;
... end;