Bei solchen Problemen füge ich gerne OutputDebugString-Anweisungen an den Stellen ein, die mir verdächtig vorkommen bzw. die das zeitliche Abräumen der Controls in der Anwendung dokumentieren.
Beispiel:
Delphi-Quellcode:
...
Application.Run;
OutputDebugString('### Application.Run - Ende');
...
Beim Start in der
IDE sieht man diese Debug-Strings dann im Ereignisprotokoll-Fenster. Und beim Start außerhalb der
IDE nehme ich die Dbgview-Anwendung von den Sysinternals-Tools, um die Debug-Strings zu sehen.