Cyrus - Di 25.03.03 11:17
Titel: ...einem Editfeld nur Zahlen erlauben?
einem Editfeld nur Zahlen erlauben?
Diese Procedure verhindet alle Eingaben ausser Zahlen in einem Editfeld
Variante1:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); var i:integer; b:boolean; begin b:=false; for i:=48 to 57 do begin if ord(key) =i then b:=true end; if b=false then key:=chr(0); end; |
Variante2:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); var i:integer ; begin try i:=strtoint(key); except key:=chr(0); end; end; |
Variante3:(von ShadowCaster)
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure KeyPressWord(Form : TForm; Sender : TObject; var Key : Char); begin if NOT (Key in [#08, '0'..'9']) then Key := #0; end; |
Variante4: (von ShadowCaster)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure KeyPressFloat(Form : TForm; Sender : TObject; var Key : Char); begin if Key = '.' then Key := ','; if NOT (Key in [#8, '0'..'9', ',']) then Key := #0; end; |
Zusatz:
optional kann in die Procedure noch ein Code eingebaut werden, der den Cursor aufs nächste Feld setzt, wenn du Enter drückst(die nächste Taborder):
Delphi-Quelltext
1: 2: 3: 4: 5:
| if Key = Chr(vk_Return) then begin Key := #0; Form.Perform(wm_NextDlgCtl, 0, 0); end; |
Moderiert von jasocul: Beitrag geprüft am 07.06.2006