Autor |
Beitrag |
rasi
Hält's aus hier
Beiträge: 7
|
Verfasst: 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
      
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: 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 
Hält's aus hier
Beiträge: 7
|
Verfasst: 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
      
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: 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 
Hält's aus hier
Beiträge: 7
|
Verfasst: 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
      

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)
|
Verfasst: Di 08.11.11 16:44
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
      
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: 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
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 08.11.11 17:43
Warum kann denn der Port nicht beim Start immer auf den korrekten Wert gestellt werden?
|
|
platzwart
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Di 08.11.11 21:13
Weil das zu einfach wäre 
_________________ Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
|
|
uall@ogc
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: 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
|
|