Autor Beitrag
mhxcm
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 54



BeitragVerfasst: Mi 06.02.08 15:44 
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

_________________
1100101 heißt ich Liebe dich ich möchte bei dir sein! (search Song:"Das Modul - 1100101") ;)
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: 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 ('.').

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); // Beispiel
begin 
  if not (Key in [#8'0'..'9''.']) then Key := #0
end;

_________________
Popov
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Mi 06.02.08 16:02 
Mal die Suche benutzen, die Frage kommt alle zwei Tage.
www.delphi-forum.de/...?search_id=355989621

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
mhxcm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 54



BeitragVerfasst: 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"

_________________
1100101 heißt ich Liebe dich ich möchte bei dir sein! (search Song:"Das Modul - 1100101") ;)
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Mi 06.02.08 16:59 
user profile iconPopov 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 ('.').

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); // Beispiel
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,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
Xong
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 113

WIN 2000
Borland Developer Studio 2006
BeitragVerfasst: Mi 06.02.08 17:03 
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Mi 06.02.08 17:36 
user profile iconHidden hat folgendes geschrieben:
Das stimmt leider nicht ganz.


Doch. Das Prinzip stimmt. Wer mehr will, kann mehr hinzufügen. Wo ist das Problem?

_________________
Popov
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mi 06.02.08 17:57 
user profile iconHidden 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.