Bei Verlassen des DBEdit-Feldes Systemprüfungen ausschalten?
15. Okt 2007, 12:57
Datenbank: INFORMIX • Version: 10 • Zugriff über: native
Hallo,
bin mir nicht so recht sicher, ob das nicht besser im "Controls"-Teil aufgehoben wäre... aber irgendwo muss ich es ja reinschreiben.
ich habe einige Zusatzfunktionen in's DBEdit eingebaut (eigene Komponente, die von DBEdit abgeleitet ist). ZB. Datumsvervollständigung - man gibt ein "010199" und er macht 01.01.1999 draus. Das Problem ist dass ich das am liebsten in der OnExit handhaben würde - doch leider ist das "zu spät". Die drunterliegende TField - Klasse macht seine eigene Abprüfung - weshalb bei obiger Beispieleingabe die Fehlermeldung kommt "..bla.. ist kein gültiges Datum". Erst danach springt er in die OnExit rein. Es bringt also auch nichts, meine Sachen vor den "inherited"- Aufruf zu bringen, weil das "Exit"-Ereignis an sich eben erst zu spät ausgelöst wird.
Ich habe im Original-Quelltext gesehen wo diese Prüfungen stattfinden - in der Klasse TDataLink. Diese abzuleiten und den Fehler zu unterdrücken geht aber nicht, weil die entscheidenden Propertys bzw. Prozeduren (die ich überschreiben müsste) private sind. Genauso wenig sollte ich den gesamten Quelltext zu nehmen und die Klasse neu zu erstellen.
Glücklicherweise hat die Software als "Standardtaste", um auf das nächste Feld zu springen, die <ENTER>-Taste, weshalb ich das ENTER-Tastaturereignis abfangen kann und meine Konvertierungen VOR der anderen Prüfung kommen. Aber sobald der Nutzer dann doch mal den "windows-"konformen Weg geht (z.B. Tab, oder per Maus rausgehen) kommt diese dämliche Fehlermeldung.
Wie also lässt sich diese Fehlermeldung unterdrücken bzw. geht das überhaupt?
manchmal machts mich mürbe
|