![]() |
Fehlermeldung durch EditMaske
hallo @ all
ich habe ein Problem mit einer Maske die folgende editmask Eigenschaft hat: !90/90/0000;1;_ sie soll für ein Datum im Format TT.MM.JJJJ sein. Wenn ich im Program in der maske jedoch mindestens einen unterstrich _ nicht durch eine Zahl ersetzte und die Maske durch Drücken von Enter Tabulator oder mit einem Mausklick verlasse gibt es eine Fehlermeldung mit dem Text: Project ProjectTagerechner.exe raised exception class EDBEditError with message'Invalid input value. Use escape key to abandon changes'. Process stopped. Use Step or Run to continue. Wie bekomme ich diese Fehlermeldung weg oder durch eine selbstgeschriebene ersetzt? Danke schonmal |
Re: Fehlermeldung durch EditMaske
Gibt es bei EditMask nicht eine Eigenschaft OnChange?
Was spricht gegen Try...except? |
Re: Fehlermeldung durch EditMaske
ich bin noch anfänger auf delphi und kenne deshalb noch nicht soviele befehle. Mit OnExit(wird doch aktiv wenn die Maske verlassen wird oder?) habe ich gerade ausprobiert aber es hat nicht geholfen. Wenn ich einen BreakPoint auf das Begin der Prozedur setzte wird dieser nicht erreicht vor der Fehlermeldung. Wenn ich OnChange benutzte prüft er bei jedem eintippen einer Zahl ob die Länge stimmt oder noch Unterstriche vorhanden sind und bringt dann jedes mal die Nachricht.
Hier mal die Prozedur die ich dazu geschrieben habe:
Delphi-Quellcode:
Mit Try except weiß ich leider nicht wo ich dies ansetzten soll. Ich hoffe das du mir helfen kannst und schonmal danke für deine Mühe.
procedure TfrmMain.laengepruefen(Sender: TObject);
begin if length(txtgeburtstag.Text) <> 8 then Showmessage('Das Datum muss 8 Zeichen lang sein'); end; |
Re: Fehlermeldung durch EditMaske
Jetzt verstehe ich dein Problem.
Die Länge kannst du so nicht ermitteln weil diese (in deinem Fall) Immer 10 ist(durch die Unterstriche). ICh probier noch ein bischen rum und meld mich dann falls kein anderer eine Lösung Parat hat |
Re: Fehlermeldung durch EditMaske
jetzt habe ich mit dieser Prozedur geprüft ob ein nichtausgefülltes Zeichen in der Maske ist:
Delphi-Quellcode:
Aber wenn ich dieese Prozedur auf das Event OnChange lege dann zeigt er jedes mal die nachricht das noch nihct alle _ ersetzt sind. und ich müsste dann noch wissen wie ich die Fehlermeldung blocken kann.
procedure TfrmMain.laengepruefen(Sender: TObject);
var i : integer; begin if pos(' ',txtgeburtstag.Text) <> 0 then Showmessage('Alle _ ersetzen!'); end; |
Re: Fehlermeldung durch EditMaske
Sorry, musste mal diesen Thread ausgraben *Reanimiert*
Das Problem besteht nun auch bei mir. Falscheingaben des Datums fange ich brav ab, nur die ValidateEdit Prüfung, bzw. deren EDBEditError bei z.B. Verlassen des Feldes würde ich gerne abfangen. (Zwecks Einbau eigener Fehlermeldung) Die Frage wurde aber bisher nicht beantwortet. Gibt es da keine Lösung oder hat das bisher nur niemand wirklich gebraucht? Ach ja: Wenns geht, bitte keine Vorschläge grundsätzlich gegen MaskEdits. Die Eingabe an sich ist fein und mich stört nur noch dieses eine Problem. Danke schon mal für Antworten. Edit: Try-Except Konstrukte im OnExit Event bringen nichts, die Exception tritt schon vorher auf. Edit2: Okay, hab mich für die Möglichkeit entschieden, einfach Entf und Backspace in den MaskEdits zu sperren. Damit hätte sich das Problem erledigt |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz