Jupp, siehe mein Code-Beispiel.
Ach ja, wenn man zwischen Forwarddeklaration und eigentlicher Deklaration einen Compilerfehler hat, dann dreht schon seit immer der Compiler durch und zeigt auf die Stelle der Forwarddeklaration ... die wirkliche Fehlerstelle darf man dann brav selber suchen.
Jaaaa, es ist theoretsich auch wirklich der "erste" Fehler, da die Forwarddeklaration dann nicht vollständig ist, aber das hätte man natürlich auch abfangen können.
Genauso dreht der Compiler übrigens auch bei den generischen Typen durch, wenn er auf einen Fehler trifft.
(man landet da nicht an der Verwendungsposition oder in der Deklaration des Typen, sondern meistens bei "implementation" in der
Unit, wo man den Typen verwenden wollte)