不好意思,详细的原代码如下:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9','.','-']) then
abort;
end;
限定用户输入的字符,但有可能会输入不是一个数值型如-12.123.123
故在exit事件中进行判断,如果不是一个数值型,使Edit1重新得到焦点。
procedure TForm1.Edit1Exit(Sender: TObject);
var s:real;
begin
Try
s:=strtofloat(edit1.text);
except
showmessage('输入数值无效');
(sender as Tedit).setfocus;
end;
end;