如何用EDIT 或maskedit 输入数值数据??(50分)

  • 主题发起人 主题发起人 hrt
  • 开始时间 开始时间
用ValidChars属性
 
leechange:
如何用请指教!thank

 
leechange:

如何保证字符出现的位置
 
搜索:如何使TEdit只能输入数字
 
EDIT中可设定on keypress事件
if key not in [0..9,'.'] then
begin
abort;
showmessage("error!");
end;
on exit事件中
用 strtofloat(edit1.text)
如EDIT中不是数值型此语名会产生一个错误,捕捉此错误即可。
maskedit 输入数值
应该可用Editmask来实现,具体请参阅帮助文件。
 
在Edit的KeyPress时件中加入
if not((key in ['0'..'9','.',#8]) ) then
key := #0;
 
maskedit不太好用,最好编一段程序来判断。
 
我也觉得maskedit 不好用。
 
不好意思,详细的原代码如下:

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;
 
用DBEDIT,连接一个数据型字段,可确保输入的数字
还可以用设定窗体keypreview属性,键盘输入,先由窗体接收,然后
再传送给TEDIT控件,其传递用ONKEYPRESS事件把你不想要的字符过滤掉.
 
多人接受答案了。
 
后退
顶部