如何判断和转换EDIT控件输入的数字?(急等回复!) ( 积分: 50 )

  • 主题发起人 主题发起人 zwtxx
  • 开始时间 开始时间
Z

zwtxx

Unregistered / Unconfirmed
GUEST, unregistred user!
两个很菜的问题,请大家不要笑,帮助我一下:
1.好象Delphi中没有一个专门接收数字输入的控件,是不是?
2.有以下两个EDIT控件用来输入数字,一个接收发票编号,要转换为整型;另一个接收金额,允许有小数点;用户输入后我要判断是否为零,然后转换为数字,再进行处理,请问如何写?
多谢高手指点!
 
两个很菜的问题,请大家不要笑,帮助我一下:
1.好象Delphi中没有一个专门接收数字输入的控件,是不是?
2.有以下两个EDIT控件用来输入数字,一个接收发票编号,要转换为整型;另一个接收金额,允许有小数点;用户输入后我要判断是否为零,然后转换为数字,再进行处理,请问如何写?
多谢高手指点!
 
var
R : real;
try
if strtofloat(edit1.text) = 0 then
begin
R := strtofloat(edit1.text);
end else
begin
end;
except
showmessage('请输入一个数字');
end;
 
DELPHI自带的控件没有,你可以使用BS皮肤控件,那上面有,并且让你的软件更好看一些。
盒子有下!
 
如果你自己控制的话,在KEYPRESS中这样写:
procedure TfrmBase.DigtalKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9',chr(13),chr(8),chr(3),chr(22),chr(24),chr(26)]) then
begin
Key := chr(0);
Beep;
end;
end;
 
稍微控制一下就可以当数字控件用了
可输入小数的
if pos('.',TEdit(ActiveControl ).Text) =0 then
begin
if not (key in['0'..'9',#6,#8,#13,#38,#39,#40,#37,'.']) then
key:=#0;
end
else if not (key in['0'..'9',#6,#8,#13,#38,#40,#37]) then
key:=#0;
不可输入小数的
if not (key in['0'..'9',#6,#8,#13,#38,#40,#37]) then
key:=#0;
 
TryStrToInt or TryStrToFloat
这两个函数可以返回输入的是否为正确的数值!
 
结贴了,谢谢各位!
 
后退
顶部