Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Bei Editfeld können nur Zahlen eingegeben werden. Wie?
Biarchiv - Do 22.07.04 09:33
Titel: Bei Editfeld können nur Zahlen eingegeben werden. Wie?
Hallo,
kann man das Editfeld unter Delphi3 so sperren das nur Zahlen von
0-9999 eingegeben werden können. Also auch keine Buchstaben und anderes?
Viper - Do 22.07.04 10:00
Hi.
Du musst das über das OnKeyPress Ereignis machen:
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TNewFileForm.EditKeyPress(Sender: TObject; var Key: Char); begin if not (Key in ['0' .. '9', #8, #13, #35, #36, #37, #39]) then Key := #0; end; |
Das erste in der Klammer sind die Zahlen und der Rest sowas wie die Enter-Taste, Entf-Taste, usw.
Dragonhunter - Do 22.07.04 10:20
Ich benutze D7 und kenn mich mit älteren Versionen nicht aus, aber bei mir funktioniert das so :
Quelltext
1: 2: 3: 4:
| procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (Key in[#8, #9, #48 .. #57]) then Key:=#0; end; |
Erklärung:
8 = Backspace
9 = Tabulator
48 - 57 = 0 - 9
Die kompletten ASCII-Codes findest Du hier
http://www.delphi-source.de/grundlagen/codes/asciiansi.php
Um die Eingabelänge des Edit-Feldes auf 4 Stellen zu beschränken mußt Du folgendes einfügen (z.B. im FormCreate-Ereignis) :
Edit1.MaxLength:=7;
Hab ich alles entweder von [url]
http://www.swissdelphicenter.ch[/url] oder [url]
http://www.delphi-source.de[/url]. :gruebel:
maxk - Do 22.07.04 12:07
Ich kann von dieser Methode nur abraten, da sie auch das Kopieren und Einfügen mit der Tastatur unmöglich macht. Ich verwende häufig diesen Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.Edit1Change(Sender: TObject); var SS,SL,i:integer; Buf:string; begin with Sender as TEdit do begin SS:=SelStart; SL:=SelLength; SetLength(Buf,0); for i:=1 to length(Text) do if Text[i] in ['0'..'9'] then Buf:=Buf+Text[i]; Text:=Buf; SelStart:=SS; SelLength:=SL; end; end; |
Dann geht auch Strg+C und Strg+V.
Dragonhunter - Do 22.07.04 12:23
@maxk : Stimmt. Ist mir in meinem Prog bisher nicht aufgefallen, da man in den entsprechenden Feldern eigentlich nichts kopiert/einfügt.
Aber gut zu wissen, falls ich's mal brauche sollte!
firus1983 - Fr 23.07.04 07:46
Ein guter Tipp !
Ich war schon mal drauf und drann die Frage ins Forum zu posten, weil es mir mal aufgefallen war, hab' dann aber irgendwie schwerwiegendere Probs an meinem Prog festgestellt.... *g*
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!