Hi mirko2000,
hatte selbst mal das Problem und hab dazu folgendes gefunden:
Diese Porcedure verhindet alle Eingaben ausser Zahlen in einem Editfeld
Delphi-Quellcode:
//Variante1:
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:
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
var i:integer ;
begin
try
i:=strtoint(key);
except
key:=chr(0);
end;
end;
//Variante3:
// 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:
// 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):
if Key = Chr(vk_Return) then
begin
Key := #0;
Form.Perform(wm_NextDlgCtl, 0, 0);
end;
Ich hoffe, das hilft dir weiter.