S3_Leo 发表于 2024-6-15 17:28:09

DELPHI EDIT控件 限制成只能输入数字

Edit中只能输入数字且只能输入一个小数点
procedure Tform1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
edt: TEdit;
str, strL, strR: string;
p: integer;
begin
   // 获取当前文本内容, 注意要去掉选中部分(因为会被改写).
edt := TEdit(Sender);
str := edt.text;
if Length(edt.SelText) <> 0 then
begin
   strL := LeftStr(edt.text, edt.SelStart);
   strR := RightStr(edt.text, Length(edt.text) - edt.SelStart - edt.SelLength);
   str := strL + strR;
end;
   // 限制输入数字/小数点/退格键
if not (Key in [#8, #13, #127, '.', '-', '0'..'9']) then Key := #0;
   //限制只能输入一个小数点
if Key = '.' then
begin
   p := Pos('.', edt.Text);
   if p > 0 then Key := #0;
end;
   //限制只能在第一位输入且只能输入一个'-'号
if Key = '-' then
begin
   if edt.SelStart > 0 then Key := #0;
   p := Pos('-', edt.Text);
   if p > 0 then Key := #0;
end;
end;
页: [1]
查看完整版本: DELPHI EDIT控件 限制成只能输入数字