Hallo nochmal,
erstmal vielen Dank für die vielen Antworten!

Mein Beispiel mit den zwei Units sollte die Sache nur etwas anschaulicher machen. In meinem Fall geht die zirkuläre Unit Referenz allerdings durch mehrere Units durch und ich finde es grundsätzlich übersichtlicher Sachen auf mehrere Dateien aufzuteilen, daher werde ich sie auf jeden Fall nicht in eine Unit packen. Die Lösung mit dem Interface gefällt mir allerdings sehr gut.
Aber das bringt mich zu einer Frage dazu, du (m.fuchs) hast bei dir {$INTERFACES Corba} als Define/Flag (ist das der richtige Begriff?) gesetzt, entfernt dies das Reference Counting für Interfaces, weil das birgt ja mehr Gefahren als Hilfen, was ich bisher so darüber gelesen habe. Daher hab ich interfaces bisher auch gemieden.
Ansonsten müsste das doch auch äquivalent mit einer abstrakten Basis Klasse funktionieren?
Gruß Knittel
P.S. @Jole, vielleicht hab ich meine Frage etwas schlecht formuliert, die Frage war ob ich die beiden Prozeduren in zwei unterschiedliche Dateien packen kann, ohne einen solchen Fehler zu produzieren.
EDIT: @Euklid: Pascal Units sind ja in 2 Bereiche aufgeteilt. Wenn du eine Unit im interface einbindest (also oben), kannst du die eingebundene Unit in deiner gesamten Unit benutzen. Hierbei sind die zirkulären uses von Units nicht erlaubt. Wenn du im Implementation Bereich (unten) eine Unit einbindest, kannst du die Klassen/Prozeduren/... auch nur im Implementationsbereich verwenden. Für die gibt es keine Einschränkung an units die du einbinden darfst.
Nehmen wir an du hast eine Unit mit einer Klasse TAuto und einer Funktion summeVonDrei(A, B, C: integer): integer; Wenn du nur die Funktion summeVonDrei in deinem Code irgendwo benötigst, würdest du sie im implementation Teil einbinden. Wenn du aber zum Beispiel eine neue Klasse TRennAuto von TAuto erben lassen willst, würdest (und musst du auch) die unit im Interface bereich bereits einbinden.