Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Abbruch procedure für Debugger ..


rasi - Di 08.11.11 15:38
Titel: Abbruch procedure für Debugger ..
Hallo,
ich habe folgendes Problem:
Wenn ich ein Delphi Programm debugge und es mit "Programm abbrechen" bzw. STRG+F2 abbreche wird ja die FormClose procedure nicht ausgeführt. Ich brauche jedoch eine Möglichkeit diesem Abbruch abfangen.
Kennt jemand eine Möglichkeit bzw. gibts unter Delphi eine spezielle Abbruch - procedure (im Sinne von OnDebugBreak) für den Debugger.

Gruß Ralph


Nersgatt - Di 08.11.11 15:46

Wenn Du das Programm im Debugger abschießt, hast Du keine Möglichkeit das im Programm abzufangen. Das ist so, als würdest Du den Prozess im Taskmanager abschießen.
Erklär mal, wofür Du das abfangen willst. Vielleicht gibts eine andere Möglichkeit.


rasi - Di 08.11.11 15:55

Meine Programm kommuniziert mit eine externe Hardware über die Serielle Schnittstelle.
Dabei wird beim Start die HW auf 115kBaud hochgesetzt.
Wenn ich mein Programm beende wird in der OnClose proc. die ext. HW wieder auf 9600 zurückgesetzt. Wenn ich im Debugger bin und abbreche funktioniert das ja nicht mehr - die ext. HW steht immer noch auf 115kBaud. Somit muss ich beim Debugger Abbruch meine ext. HW immer erst "Reseten" (Power aus / ein) bevor ich mein Prog. starte - was sehr lästig ist.

Gruß Ralph


Horschdware - Di 08.11.11 16:03

Lässt sich das nicht evtl beim Start des Programms prüfen?
Wäre ja auch im produktiven Einsatz später mal echt fies wenn das Programm (warum auch immer) unkontrolliert abschmiert und dann die Hardware hängt.


rasi - Di 08.11.11 16:15

Nein kann ich leider nicht!

Wenn ich mit 9600 Baud einen Abfragebefehl in die HW sende die fälschlicherweise noch auf 115kBaud steht, so bekomme ich keine Antwort, gleichzeitig hat sich aber die RS232 der ext. HW durch diesen Abfragebefehl mit falscher Baudrate leider "aufgehängt". Ergo: -> wieder Power OFF/ON - Reset der HW nötig!

Gruß Ralph


Xion - Di 08.11.11 16:44

:think:

Leg dir beim Start eine Datei an und lösche sie am Ende wieder.
Ist die Datei beim Start bereits vorhanden => du weißt dass die HW nicht richtig zurückgesetzt wurde und kannst entsprechend reagieren.
Eine erweiterte Variante wäre, in dieser Datei mitzuschreiben wie die HW eingestellt ist (falls du an mehreren Stellen dies änderst).


Nersgatt - Di 08.11.11 16:50

Das funktioniert wiederrum nicht, wenn dann doch die HW ein- und ausgeschaltet wird.


jaenicke - Di 08.11.11 17:43

Warum kann denn der Port nicht beim Start immer auf den korrekten Wert gestellt werden?


platzwart - Di 08.11.11 21:13

Weil das zu einfach wäre :D


uall@ogc - Di 08.11.11 23:56

Um was fuer eine Hardware handelt es sich denn? Sicher, dass die Einstellungen nicht dort gespeichert werden koennen? Gibt es keinen Befehl den du unter 9.6k schicken kannst und wenn die Hardware nicht anwortet, du es auf 115k probierst.