![]() |
Re: Programmprozess läuft weiter, obwohl "Windows"
Zitat:
|
Re: Programmprozess läuft weiter, obwohl "Windows"
Hi,
der Ende-Button ist ein simples onClick auf einen Button, mit:
Delphi-Quellcode:
So jedenfalls hat meine Forumssuche ergeben, ist der beste Weg, zu beenden.
Application.Terminate;
gruss litotes |
Re: Programmprozess läuft weiter, obwohl "Windows"
ein einfaches "Close()" sollte zum schließen genügen.
|
Re: Programmprozess läuft weiter, obwohl "Windows"
Delphi-Quellcode:
Was passiert bei einem simplen close;?
Application.Terminate;
Terminate klingt so brutal, das mag ich persönlich gar nicht. |
Re: Programmprozess läuft weiter, obwohl "Windows"
Hallo,
weiteres Debuggen hat ergeben, dass mein Programm anscheinend an folgender Stelle hängt (nachdem ich Beendet habe per Windows-Kreuz): im CPU-Fenster sieht man ntdll.kiFastSystemCallRet Kann damit jemand was anfangen? litotes |
Re: Programmprozess läuft weiter, obwohl "Windows"
Hallo,
setz mal einen Breakpoint auf FormDestroy das Hauptforms. Heiko |
Re: Programmprozess läuft weiter, obwohl "Windows"
Hallo,
@hoika: den Breakpoint habe ich gesetzt, obwohl onDestroy bisher gar nicht existiert hat. Ich habe also mal label1.caption := 'test'; reingeschrieben. Beim durchsteppen kommt erst der ganze label caption Kram, und dann landet er, auch bei anderen Befehlen (also close() statt label.caption) bei dem Mutex-Befehl:
Delphi-Quellcode:
Dieser Code steht bei meiner "program"-datei, also der "Programmname.dpr".
const
MutexName = 'Helfomat'; //-->der Name, unter dem Windows dein Programm anspricht var hMutex: THandle; begin hMutex := CreateMutex(NIL, True, MutexName); //-->Versuch, dem Programm den obigen Mutex zuzuweisen if (hMutex = 0) OR (GetLastError = ERROR_ALREADY_EXISTS) then begin CloseHandle(hMutex); halt; end; Application.Initialize; Application.CreateForm(TF_Navigation_705_Abfrage, F_Navigation_705_Abfrage); Application.CreateForm(TF_Hier_Starten, F_Hier_Starten); Application.CreateForm(TF_SM, F_SM); Application.Run; CloseHandle(hMutex); Merkwürdigerweise läuft der Prozess auch nur weiter, nachdem ich ins zweite Formular gewechselt bin. Wenn ich nur Form1 aufmache, ist alles ok. Noch jemand ne gute Idee? litotes |
Re: Programmprozess läuft weiter, obwohl "Windows"
Hallo,
ich hab den Fehler noch ein wenig weiter eingeengt. Mein Hauptformular lässt sich schließen, und der Prozess wird sauber beendet. Der Fehler (Prozess läuft weiter) tritt nach dem Wechsel zum 2. Formular auf. Und es ist völlig egal, ob ich ein völlig leeres Formular aufrufe, und wie ich es aufrufe (über create dynamisch zur Laufzeit, oder gleich zu Beginn immer vorhanden). Es kann also IMHO nicht an dem liegen, was im 2. Formular aufgerufen wird, oder? /edit: Ein letzter verzweifelter Test hat ergeben, dass ein völlig neues Projekt (!), das nur aus 2 leeren Form1 und Form2 mit einem Button dazwischen und hide; Form2.show besteht, denselben Fehler zeigt. Kann das jemand mal auf seinem Computer nachvollziehen? Sprich, auf Form2 wechseln, über das Kreuz schließen und prüfen, ob der Prozess noch läuft? Ich werde immer ratloser... litotes |
AW: Programmprozess läuft weiter, obwohl "Windows"-Kreuz gedrück
Hallo,
es ist schon viel zeit vergangen seit dem letzten Post hier, aber eine Lösung war nicht dabei, wie es aussieht, und da ich ein ähnliches Problem habe, dachte ich, ich poste mal hier. Bei mir sieht es folgendermaßen aus: - Eine mit Delphi 2007 erstellte Anwendung - Auf Betriebssystemen außer Windows 7 scheint alles zu funktionieren - Auf Windows 7 auch, aber nur solange kein Fehler während der Laufzeit auftritt. Passiert dies, z.B. eine Zugriffsverletzung, bleibt der Prozess nach dem Beeden in der Prozessliste und muss manuell beendet werden. Ohne Fehler geht es. Gibt es irgendwelche neuen Erkenntnisse, ähnliche Erfahrungen oder Ideen in dem Zusammenhang? Schöne Grüße, "shadowman" |
AW: Programmprozess läuft weiter, obwohl "Windows"-Kreuz gedrück
Dann behandle den Fehler (Exception), wenn er sich nicht vermeiden lässt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz