Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Programm soll merken, dass es beim Debuggen geschlossen wird (https://www.delphipraxis.net/81639-programm-soll-merken-dass-es-beim-debuggen-geschlossen-wird.html)

RavenIV 30. Nov 2006 15:34


Programm soll merken, dass es beim Debuggen geschlossen wird
 
Hallo zusammen,

nachdem ich etliche Male die Suche mit verschiedenen Begriffen gequält habe, sind mir dann die Ideen ausgegangen, nach was ich zu diesem Problem noch suchen könnte.

Ich will das Problem mal kurz beschreiben:
Ich bin am debuggen meines Programmes.
Bei Programmende sollen noch einige Aktionen ausgeführt werden, z.B. serielle Schnittstellen sauber schliessen, vorher einige Befehle an die angeschlossenen Geräte schicken, usw.
Wenn ich auf das "Kreuzchen" oder den "Schliessen"-Button oder <ALT>+<F4>drücke, wird Form.Close ausgeführt und alles ist gut.
Wenn ich das Programm jedoch mit <STRG>+<F2> oder mit "Programm zurücksetzen" im IDE-Menu beende, wird Form.Close und auch Form.Destroy nicht aufgerufen.
Es ist aber wichtig, dass die an der seriellen Schnittstelle angeschlossenen Geräte immer sauber getrennt werden.

Wie kann ich das schaffen, dass mein Programm auch beim Beenden im Debugger noch einige Aktionen ausführt?

gruessle

Sascha L 30. Nov 2006 15:39

Re: Programm soll merken, dass es beim Debuggen geschlossen
 
ich glaube gar nicht, da das Programm (der Prozess) dann hart gekillt wird.

RavenIV 30. Nov 2006 15:42

Re: Programm soll merken, dass es beim Debuggen geschlossen
 
Das wäre dann aber nicht schön. :-(

Und es wird keine Message mehr geschickt?
Oder sonst irgendwie benachrichtigt?

SirThornberry 30. Nov 2006 15:48

Re: Programm soll merken, dass es beim Debuggen geschlossen
 
nen, es wird rein gar nix mehr gesendet. Es ist mindestens genau so schlimm als würdest du ein programm über den Taskmanager hart beenden (Prozess beenden)

Light 30. Nov 2006 16:34

Re: Programm soll merken, dass es beim Debuggen geschlossen
 
Ich schätze du hast da wenig Chancen.

Es gäbe eine -zwar Umständliche aber wenigstens überhaupt eine- Lösung:
Du schriebst ein Programm was Di Eigentliche Schnittstellen Kommunikation ausführt und steuerst das dann per deinem eigentlichen Programm und falls dein Hauptprogramm nicht mehr da sein sollte oder so dann beendet das andere Programm die Verbindungen und schließt sich dann auch .
Dann könnte man das immer vom Hauptprogramm aus ausführen....

Leuchtende Grüße

Stefan
alias Light

Bernhard Geyer 30. Nov 2006 16:48

Re: Programm soll merken, dass es beim Debuggen geschlossen
 
Zitat:

Zitat von RavenIV
Es ist aber wichtig, dass die an der seriellen Schnittstelle angeschlossenen Geräte immer sauber getrennt werden.

Wie kann ich das schaffen, dass mein Programm auch beim Beenden im Debugger noch einige Aktionen ausführt?

Wie schon die vorredner geschrieben haben: Das geht nicht. Was würden wohl Viren machen wenn Sie beim Abschießen durch den Virenscanner oder dem User das mitbekommen würden? "Intelligentere" Viren/Würmer/... haben oft einen "Überwachungsprozess".

Was passiert mit den Geräten wenn sowas passiert? Stehen diese "im Wald"? Was ist wenn physikalisch die Verbindung getrennt wird. Da kannst du auch kein "saubere" Trennung durchführen.

RavenIV 30. Nov 2006 17:00

Re: Programm soll merken, dass es beim Debuggen geschlossen
 
Zitat:

Zitat von Bernhard Geyer
Was passiert mit den Geräten wenn sowas passiert? Stehen diese "im Wald"? Was ist wenn physikalisch die Verbindung getrennt wird. Da kannst du auch kein "saubere" Trennung durchführen.

so ungefähr sieht es aus.
Ich muss halt ein Init machen, das verhältnismässig viel Zeit in Anspruch nimmt.
Das Init könnte ich mir dann sparen.

Gewohnheitsmässig drückt man halt <STRG><F2>, wenn das Ergebnis beim Debuggen nicht so ist wie erwartet. Wenn man's dann gedrückt hat, könnte man sich in den Arsch beissen. ;-)

SirThornberry 30. Nov 2006 17:02

Re: Programm soll merken, dass es beim Debuggen geschlossen
 
Ich denke es wird nur die Variante von Light übrig bleiben.

hanspeter 30. Nov 2006 17:54

Re: Programm soll merken, dass es beim Debuggen geschlossen
 
Geht nicht.
Ich bin ja schon froh, wenn Delphi sich nach Beenden im Debugger nicht aufhängt.
Passiert mir regelmäßig im Zusammenhang mit einem Com-Server.
Delphi lässt sich auch ohne Speicherschutzverletzung nicht mehr schließen.
In ein von drei Fällen muß ich dann den Rechner neu starten.
Setze doch das Programm fort und baue irgendwo einen Abbruchschalter ein, welcher das Programm terminiert.

Gruß Peter

RavenIV 1. Dez 2006 07:21

Re: Programm soll merken, dass es beim Debuggen geschlossen
 
Zitat:

Zitat von hanspeter
Setze doch das Programm fort und baue irgendwo einen Abbruchschalter ein, welcher das Programm terminiert.
Gruß Peter

Den Button "Schliessen" habe ich schon.
Aber nicht immer denke ich daran, dass ich diesen auch drücken muss.
Manchmal bleibt das Programm auch sonst wo hängen und ich erreiche den Button garnicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr.
Seite 1 von 2  1 2      

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