Entwickler-Ecke
Sonstiges (Delphi) - Abfrage ob in EditFeld eine Zahl oder Text steht
mhxcm - Mi 06.02.08 15:44
Titel: Abfrage ob in EditFeld eine Zahl oder Text steht
Moin,
wie kann ich Abfragen ob in einem Editfeld eine Zahl steht oder Text. Möchte nämlich das ich nur Zahlen eingeben kann und bei allem anderen eine Fehlermeldung mit der Info das nur Zahlen erlaubt sind erscheint. Danach soll man dann nochmals die Möglichkeit haben was einzugeben....
benötigt ihr Quelltext? dann sagt bescheid!
mfg
Popov - Mi 06.02.08 16:02
03.) F: Wie kann man in einem Editfeld nur numerische Eingaben zulassen?
------------------------------------------------------------------------
A: Um nur Zahlen zuzulassen muss man im KeyPress Ereigniss des Editfelds das
Zeichen (Key) prüfen. Die Variable Key wird von der Prozedur geliefert und muß
nur noch geprüft werden. Entspricht das Zeichen nicht dem Filter, so wird Key
mit dem Sonderzeichen #0 (ASCII 0) überschrieben. ASCII 0 hat auf das Editfeld
keine Auswirkung. Um nur Zahlen zu akzeptieren reicht der Filter ['0'..'9']. Es
empfiehlt sich aber noch einige weitere Tasten zuzulassen, wie zum Beispiel
Zurücktaste (#8) oder Punkt für Nachkommastellen ('.').
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (Key in [#8, '0'..'9', '.']) then Key := #0; end; |
mhxcm - Mi 06.02.08 16:06
@ Blackheart666: "Dein Link funktioniert tadelos" nur leider wird keine Ergebnisse angezeigt... und sry... dann hab ich wohl nicht richtig gesucht... suche nämlich eigentlich immer bevor ich was poste und habe mir schon viele post so erspart....
@ Popov: "Danke"
Hidden - Mi 06.02.08 16:59
Popov hat folgendes geschrieben: |
03.) F: Wie kann man in einem Editfeld nur numerische Eingaben zulassen?
------------------------------------------------------------------------
A: Um nur Zahlen zuzulassen muss man im KeyPress Ereigniss des Editfelds das
Zeichen (Key) prüfen. Die Variable Key wird von der Prozedur geliefert und muß
nur noch geprüft werden. Entspricht das Zeichen nicht dem Filter, so wird Key
mit dem Sonderzeichen #0 (ASCII 0) überschrieben. ASCII 0 hat auf das Editfeld
keine Auswirkung. Um nur Zahlen zu akzeptieren reicht der Filter ['0'..'9']. Es
empfiehlt sich aber noch einige weitere Tasten zuzulassen, wie zum Beispiel
Zurücktaste (#8) oder Punkt für Nachkommastellen ('.').
Delphi-Quelltext 1: 2: 3: 4:
| procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (Key in [#8, '0'..'9', '.']) then Key := #0; end; | |
Hi,
Das stimmt leider nicht ganz.
Aus der Zwischenablage können noch beliebige Zeichen eingefügt werden,
zusätzlich empfiehlt sich daher ein Check beim Auslesen,
wenn schlimme Fehler bei falschen Eingaben folgen können.
Da kenne ich jedoch keinen Königsweg...
(Oder kann man eventuell strg + v in der Form abfangen, bevor es das TEdit erreicht?)
mfG,
Popov - Mi 06.02.08 17:36
Hidden hat folgendes geschrieben: |
| Das stimmt leider nicht ganz. |
Doch. Das Prinzip stimmt. Wer mehr will, kann mehr hinzufügen. Wo ist das Problem?
Yogu - Mi 06.02.08 17:57
Hidden hat folgendes geschrieben: |
| kann man eventuell strg + v in der Form abfangen, bevor es das TEdit erreicht? |
Erstelle ein Menü mit der ShortCut Strg+V, dann kannst du dir die Zwischenablage erst mal mit der Unit "clipbrd" anzeigen lassen, die Buchstaben etc. rausfiltern, und dann den Rest in das Edit einfügen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!