Jupp, möglichst immer in das Interface.
- da merkt man, wie schon erwähnt, ob man sich irgendwo Kreisbeziehungen eingehandelt hat.
- und die dort angegebenen Units sind "immer" schon initialisiert, bevor irgendein Code der eigenen
Unit ausgeführt wird, bzw. externe Units werden nicht schon freigegeben, bevor nicht der letzte Code fertig ist. (bei Letzterem abgesehn von unglücklich gesteuerten Threads)
Ist eine
Unit in der Implementation angegeben, dann kann es sein, daß deren Initializations-Abschnitt noch garnicht abgearbeitet wurde und man schon auf etwas noch nicht Existierendes zugreifen will.
Genauso andersrum beim beenden des Programms, bzw. beim Entladen der
DLL/
BPL ... dort kann dann schon wasweg sein, obwohl man es noch braucht.