如何限制edit控件里面只能输入数字?
加入OnKeyPress及OnKeyDown事件可以屏蔽除数字键以外的键,只能输入数字(用户使用粘贴办法也不可以输入进非数字字串)。
// 屏蔽除数字键以外的键,并且防止用户使用 Ctrl+V 粘贴非数字字串
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in ['0'..'9', #8]) then Key := #0;
end;
// 屏蔽鼠标右键,防止用户使用"粘贴"菜单功能粘贴非数字字串
procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (Button = mbRight) then ShowMessage('鼠标右键已经被屏蔽!');
end;
为了限制只能输一个小数点,需要再加一句话
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (not (Key in ['0'..'9', '.', #8])) or ((key='.') and (pos('.',edit1.Text)>0)) then key := #0;
end;