Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Fehlermeldung durch EditMaske (https://www.delphipraxis.net/61669-fehlermeldung-durch-editmaske.html)

bfr 24. Jan 2006 19:32


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

inherited 24. Jan 2006 20:49

Re: Fehlermeldung durch EditMaske
 
Gibt es bei EditMask nicht eine Eigenschaft OnChange?

Was spricht gegen Try...except?

bfr 24. Jan 2006 21:31

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:
procedure TfrmMain.laengepruefen(Sender: TObject);
begin
if length(txtgeburtstag.Text) <> 8 
   then Showmessage('Das Datum muss 8 Zeichen lang sein');
end;
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.

inherited 25. Jan 2006 14:35

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

bfr 25. Jan 2006 15:19

Re: Fehlermeldung durch EditMaske
 
jetzt habe ich mit dieser Prozedur geprüft ob ein nichtausgefülltes Zeichen in der Maske ist:

Delphi-Quellcode:
procedure TfrmMain.laengepruefen(Sender: TObject);
var i : integer;
begin
  if pos(' ',txtgeburtstag.Text) <> 0
    then Showmessage('Alle _ ersetzen!');
end;
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.

alphaflight83 17. Okt 2008 12:34

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 12:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz