Autor Beitrag
Cyrus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56



BeitragVerfasst: Di 25.03.03 11:17 
einem Editfeld nur Zahlen erlauben?

Diese Procedure verhindet alle Eingaben ausser Zahlen in einem Editfeld

Variante1:
ausblenden 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:
ausblenden 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)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
// lässt nur Zahlen zu und die Backspacetaste 
procedure KeyPressWord(Form : TForm; Sender : TObject; var Key : Char); 
begin 
  if NOT (Key in [#08'0'..'9']) then 
    Key := #0
end;


Variante4: (von ShadowCaster)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
// lässt nur Zahlen mit Komma zu und die Backspacetaste 
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):
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
  if Key = Chr(vk_Return) then 
  begin 
    Key := #0
    Form.Perform(wm_NextDlgCtl, 00); 
  end;

Moderiert von user profile iconjasocul: Beitrag geprüft am 07.06.2006

_________________
Wer glaub er ist, hört auf zu werden!
Delphi Rulez!!!