Wie schon geschrieben arbeitet und schließt das Programm ganz normal. Erst DANACH kommt von Windows diese Meldung.
Der Zeitpunkt irritiert mich, sonst hätte ich auf ein MemoryLeak getippt. Oder zumindest eine Fehlermeldung mit mehr Aussagekraft *grml*.
Falsch, nicht dein Programm ist da bereits
geschlossen beendet, sondern nur die MainForm (deine Form1) ist "ausgeblendet" oder vielleicht schon freigeben.
Das Programm läuft dennoch weiter, bis alle Aufräumaktionen beendet wurden und in einer dieser Aufräumaktionen wird es bei dir vermutlich ein Problem geben.
In der
DPR mal nach dem
Application.Run;
eine MessageBox anzeigen. Kommt dein Programm denn wenigstens bis dort hin? (Dialog wird angezeigt)
Nie Probleme?
Kleines Beispiel:
FreeAndNil(Form1);
und jetzt versuche mal im OnDestroy auf Form1 zuzugreifen, denn das ist dann bereits NIL, da die Funktion eigentlich NilAndFree heißen müsste, da sie zuerst die Variable auf NIL setzt und danach dann das Free aufruft.
Wenn du unbedingt einen NameSpace nutzten willst, dann benutzte auch den Richtigen, also
Self.Close;
(innerhalb einer TForm1-Methode aufgerufen).