Autor Beitrag
rasi
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Di 08.11.11 15:38 
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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: 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.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
rasi Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: 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.

_________________
Delphi: XE - OS: Windows 7 Professional x64
rasi Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: 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).

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Di 08.11.11 16:50 
Das funktioniert wiederrum nicht, wenn dann doch die HW ein- und ausgeschaltet wird.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 08.11.11 17:43 
Warum kann denn der Port nicht beim Start immer auf den korrekten Wert gestellt werden?
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Di 08.11.11 21:13 
Weil das zu einfach wäre :D

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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.

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit