Und was ist nun mit der Zeile 518?
Was ist da drumrum?
Es gibt "Methoden" in Klassen (und auch in Records).
Dort ist in der Typdeklaration
immer eine "Forward"-Deklaration vorhanden (egal ob im Interface oder der Implementation)
und dann in der Implementation die eigentlich Deklaration der Methode.
Einzelne Prozeduren/Funktionen (nicht in einer Klasse) stehen ebenfalls immer in der Implementation
und man kann optional auch vorher eine Forward-Deklaradion angeben.
Entweder im Interface, oder auch in der Implementation (hier aber mit
forward;
markiert).
Auch Klassen und und Zeigertypen kann man als Forward, vor dem eigentlichen Typen deklarieren, so lange es innerhalb des selben TYPE-Blocks steht.
Über ein "Interface" kann man auch getrennt, sogar in einer anderen
Unit, für eine Klasse alles quasi als abgetrenten "Forward" deklarieren,
ebenso wie über eine Vererbung als
virtual; abstract;
eine Methode forwarden.