Autor Beitrag
Shoplifter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 09.01.18 12:32 
Hallo,

ich habe in meiner Anwendung bei allen Eingabefeldern das KeyUp-Ereigniss definiert um die Enter und Return-Tasten abzufangen, damit ich durch diese auf das nächste Eingabefeld springen kann. Das fkt. so weit.

Probleme gibt es bei der Fehler/Plausibilitätsbehandlung. Diese läuft im LEAVE-Ereigniss (nur die komplette Eingabe soll geprüft werden). Bei einem Fehler erscheint eine MessageBox mit entsprechenden Hinweis. Bestätige ich diese mit Return oder Enter, wird die MessageBox geschlossen, aber auch das KeyUp-Ereigniss der Text-Box greift dadurch wohl wieder, so dass ich mich in einer Endlosscheife befinde.
Die passiert aber nur im Live-Modus, wenn ich das ganze debugge läuft es rund. Bestätige ich die Message-Box mit der Maus, läuft alles wie gewollt!

Hat hier jemand eine Idee, wie man das abfangen kann. Das Enter/Return für die Message-Box sollten eigentlich nur für diese gelten.

Danke und Gruß

Frank
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 09.01.18 14:32 
Wenn es die Windowseigene MessageBox ist und keine selbstgeschriebene dann ist das so das die auf KeyDown reagiert insofern ist danach noch ein KeyUp über. Entweder du benutzt eine eigene MessageBox Klasse die auch auf KeyUp reagiert (und damit den Key Event frisst) oder du fängst an deiner jetzigen Stelle auch KeyDown ab anstatt KeyUp.
Shoplifter Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 09.01.18 16:27 
ist die Windowseigene MessageBox.
Habe jetzt mal eine Maske mit KeyDown geändert. Funktioniert soweit.

Muss mal überlegen ob ich was selbst schreibe.

Danke.