Hallo!
Ich habe ein seltsames Phänomen auf einem meiner Dev-Systeme ((D6 Ent., UP2): Einige meiner Anwendungen melden beim Beenden einen Runtime-Error 216. Mit dem Debugger oder der Suche nach Laufzeitfehler komme ich nur auf (mir) nichtssagende Teile des Assembler-Codes im CPU-Fenster. Interessanterweise tritt dieser Fehler *nicht* auf, wenn ich die Anwendung vor dem Beenden minimiere und wieder herstelle oder alternativ irgendein anderes Fenster auf dem Desktop kurz anklicke und meine Anwendung wieder aktiviere. Ein automatisiertes Minimize in der
DPR-Datei als letzte Anweisung vor den ganzen finalization-Abschnitten löst das Problem ebenfalls:
Delphi-Quellcode:
...
Application.Run;
Application.Minimize;
End;
Was auch noch hilft: im Debugger einen Breakpoint auf das "End;" setzen und zwei bis drei Sekunden warten und dann mit F9 weiterlaufen lassen. Schon geht es
Der Anwendung ist lediglich ein FromDestroy-Ereignis zugeordnet, welches aber keinen Einfluß auf den beschriebenen Effekt zu haben scheint. Die von mir verwendeten 3rd-Party-Bibliotheken sind u.a.
IP*Works!, NTSet, CoolTrayIcon, u.a. und ich binde diverse
ActiveX-Controls ein. ShareMem hat keinen Einfluß und schrittweises Entfernen von Code macht mich wahnsinnig, weil ich zwar Code entfernen kann, bis der Effekt nicht mehr auftritt. Aber wenn ich dann den letzten Schritt wieder rückgängig mache, tritt das Problem oftmals gar nicht auf. Ich muß dann wieder mehrere Schritte einmal zurück und kann den Fehler trotz systematischer Suche nicht richtig eingrenzen.
Viele Grüße
-=HS=-