我在做一个票据打印的程序时,要将用户输入的小写金额自动计算成大写金额,在金额输入框的onkeypress函数中调用了一个自己写的转换函数calculate。在转换函数中用到以下代码:
if sj1.Text<>'' then
begin
try
sj:=strtofloat(sj1.Text );
finally
showmessage('只能输入数字和小数点!');
end;
end
但是仍然不起作用,一旦用户在名为sj1的编辑框中输入汉字或字母,程序就报错,是什么原因呢,该怎么改呢
if sj1.Text<>'' then
begin
try
sj:=strtofloat(sj1.Text );
finally
showmessage('只能输入数字和小数点!');
end;
end
但是仍然不起作用,一旦用户在名为sj1的编辑框中输入汉字或字母,程序就报错,是什么原因呢,该怎么改呢
解决方案 »
- 【申请】小弟要申请Windows SDK/API的版猪职务,当不上也散分啦!【散分444】
- 这样的表,如何用name替代ID!!
- Interbase是否不能用ADO连接?(难!还是不懂!)
- IP地址书写判断!(马上给分,在线等待!)
- 我给MSSQL2000打了一个补丁,结果局域网的速度变的很慢,这是怎么回事啊?
- 2000分大放送之<一>!向明日到访的古巴领袖菲德尔·卡斯特罗致敬!
- 初学者问的一个关于UPDATE的用法的问题
- 已知圆点坐标和半径,想用这个半径做一次圆周运动。类似圆形雷达扫描线
- 知道控件名称怎么找到控件?
- 隐藏目录
- 有这么一个问题,忘各位告知道,给分!谢谢!
- 如何制作类似于oicq那咱几格的菜单?
if sj1.Text<>'' then
begin
try
sj:=strtofloat(sj1.Text );
except
showmessage('只能输入数字和小数点!');
end;
end
begin
{ Get text from TEdit control }
Val(Edit1.Text, I, Code); //Val procedure
{ Error during conversion to integer? }
if Code <> 0 then
MessageDlg('Error at position: ' + IntToStr(Code), mtWarning, [mbOk], 0);
else
Canvas.TextOut(10, 10, 'Value = ' + IntToStr(I));end;
IF NOT(KEY IN ['0'..'9']) THEN
KEY:=#0;
KEY:=#0;
sj:=strtofloat(sj1.Text );
except
showmessage('只能输入数字和小数点!');
end;
==============
or
==============
var
F:Extended;if Not tryStrToFloat(sj1.Text,F );
showmessage('只能输入数字和小数点!');