Hallo,
Grundsätzlich sollte man immer nur die Türen auch schliessen, welche man selber geöffnet hat und auch nur diese. Das soll heißen, daß du Form1.Free eventuell nicht aufrufen solltest, da dass Aufräumen der Forms normalerweise automatisch passiert. Wenn du es allerdings selber "Created" hast, dann OK.
Desweitern sollte in einer DLLAufräumRoutine auch nur das aufgeräumt werden, was in der
DLL erzeugt wurde. Denke hier in Zonen, welche sich selber unabhängig verwalten.
Du solltest auch immer in der umgekehrten Reihenfolge aufräumen (FirstIn-LastOut)
Desweiteren sollte man anstelle
MyObject.Free;
besser verwenden
FreeAndNil(MyObject);
, Denn dabei wird die Variable MyObject auf NIL gesetzt. Das kannst du dann nutzen, indem du in deinen Methoden/Funktionen prüfst, ob das Object noch da ist, also eventuell in Finalization
If Assigned(MyObject)then