Registriert seit: 22. Sep 2003
1.123 Beiträge
Delphi 12 Athens
|
Anwendung sauber beenden - FormDestroy wird nicht aufgerufen
5. Apr 2014, 22:57
Hallo Delphianer,
ich versuche mal mein Problem zu beschreiben.
Ich habe ein relativ großes Projekt von Delphi 2006 nach XE4 portiert.
Hat auch alles soweit geklappt nur eine Sache funktioniert nicht sauber.
Nämlich das Anwendung beenden.
Beim Runterfahren der Anwendung (FormClose) wird eine Prozedure aufgerufen, welche alle Threads und Speicherobjekte freigeben soll. Diese Funktion kehrt auch erst wieder (also FormClose läuft erst dann zum Ende) wenn alle Sachen freigegeben wurden. Jetzt kommt folgendes Problem:
Ich habe FormClose mit verschiedenen Action-Rückgaben (caFree,caHide) versucht zu beenden nur leider wird FormDestroy nicht mehr aufgerufen bzw. kommt er da nie rein.
Die Anwendung scheint also irgendwo zu hängen aber ich weiß nicht wo. Laut Delphi wird sie auch noch ausgeführt, im TaskManager werden auch noch 5 Threads angezeigt obwohl ich mir relativ sicher bin, alle beendet zu haben.
Wie kann ich also herausfinden, warum FormDestroy nicht aufgerufen wird (hier werden nämlich noch Komponenten und andere Sachen die in meinem MainForm liegen freigegeben) und welche Threads evtl. noch laufen (gibt es eine Möglichkeit die ThreadNamen herauszufinden, damit man da weiter suchen kann?).
Ich hoffe ihr könnt mir hier weiterhelfen.
Leider ist die Anwendung viel zu groß, um diese hier darzustellen. Deswegen hoffe ich auf eure Erfahrung, mit dem Problem weiter zu kommen.
Grüße
Let's fetz sprach der Frosch und sprang in den Mixer
|