Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi TMaskEdit automatisch füllen (Datumsformat) (https://www.delphipraxis.net/166971-tmaskedit-automatisch-fuellen-datumsformat.html)

MiKaEr 8. Mär 2012 00:40


TMaskEdit automatisch füllen (Datumsformat)
 
mein maskedit hat folgendesm, ganz normales uhrzeit-format: !90:00;1;_

wenn ich nun eine uhrzeit eingebe und zum beispiel das erste "feld" leer lasse UND den fokus einer anderen komponente gebe, erhalte ich einen fehler.

meine frage nun:
ich dachte ich kann den fehler ausbügeln und mein maskedit selbst korrigieren. aber die exception kommt mir immer zuvor.

wie kann ich nun ein maskedit (dessen leeren stellen) automatisch füllen lassen und KEINE exception bei ent-fokusierung des maskedits bekommen?

jaenicke 8. Mär 2012 05:34

AW: TMaskEdit automatisch füllen (Datumsformat)
 
Ein MaskEdit ist genau für diese Validierung gedacht, damit man eben nicht etwas anderes eingeben kann.

Daher musst du dir ein eigenes MaskEdit ableiten und die Methode ValidateEdit überschreiben, wenn du das ändern willst.

mz23 8. Mär 2012 07:09

AW: TMaskEdit automatisch füllen (Datumsformat)
 
Das MaskEdit habe ich auch einige Male erfreut verwendet.
Und es war mit Deinem erwähnten "Fehler" ebenfalls behaftet.

Ich will eine Zahl eingeben (4-stellig) und dachte mir,
wenn ich nur drei Stellen eingebe, dann müßte das auch
klappen. Also statt 0123 nur 123.

Das löste die Fehlermeldung aus.
Seitdem parse ich wieder durch den Eingabetext, entferne
bzw. ignoriere falsche Zeichen, entferne vorausgehende
oder endende Leerzeichen und wandle dann den Text-Wert
in einen Zahl-Wert um.

Bei Bereichsüberschreitungen setze ich dann den höchsten
Wert, oder umgekehrt den niedrigsten möglichen Wert.

Schöne Grüße aus Nürnberg,
Manfred

himitsu 8. Mär 2012 09:19

AW: TMaskEdit automatisch füllen (Datumsformat)
 
Es ist übrigens auch eine Komponente direkt im Delphi vorhanden, zum Eingeben von Datumswerten. (sogar mit einem kleinen Popupkalender, für's Einfache auswählen)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:50 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