主题:[求助] 急...
lzahn
[专家分:50] 发布于 2006-07-18 00:25:00
var i:integer;
i:=strtoint(edit1.text);
我要i的值一定是一个正整数...
如果在edit1.text 中输入了"123.5"怎么办,,或者是"ddd#$%"怎么办..
我应该怎么去判断..
高手求救 啊....
感激感激....
回复列表 (共8个回复)
沙发
haptis [专家分:1260] 发布于 2006-07-18 09:03:00
异常处理 就可以了
如果需要正整数再加个if条件判断
板凳
mzy1982 [专家分:470] 发布于 2006-07-18 10:09:00
在KEYPRESS事件中增加代码,只允许输入0~9.就可以保证输入的都是正整数了.
if KEY not in ('0'..'9') then exit;
而且建议不要使用"strtoint"
最好用"strtointdef(string a,int i);"//意思是如果转换失败,则返回i值
比如 strtointdef('abc',0) 返回的是0
3 楼
lzahn [专家分:50] 发布于 2006-07-18 11:54:00
请问下一下这里的"keypass"事件..
这个出发事件是不是edit1的一个事件...
说的更详细一点好吗?
谢谢..
4 楼
lzahn [专家分:50] 发布于 2006-07-18 12:14:00
如果我这样直接写,你看有没有错..
begin
var i:integer;
strtointdef(edit1.text,i);
if i=0 then begin
showmessage('请输入一个正整数');
edit1.text='';
end
else
.......
end;
如果这样直接写的话是不是把所有的都包括进去了..象输入(12.3)或者(da#)这样的错误的信息都能查不出来...
5 楼
xiny1982 [专家分:0] 发布于 2006-07-20 18:37:00
你可以用TRUNCK函数啊,就是截取整数部分
6 楼
freewolf [专家分:30] 发布于 2006-07-20 19:30:00
[quote]在KEYPRESS事件中增加代码,只允许输入0~9.就可以保证输入的都是正整数了.
if KEY not in ('0'..'9') then exit;
而且建议不要使用"strtoint"
最好用"strtointdef(string a,int i);"//意思是如果转换失败,则返回i值
比如 strtointdef('abc',0) 返回的是0[/quote]
我也是用这个方法还做的,免得出错。
7 楼
lzahn [专家分:50] 发布于 2006-07-28 10:50:00
if KEY not in ('0'..'9') then exit;
这段代码是什么意思。。
解释一下好吗。。
谢谢
8 楼
wealthy [专家分:1840] 发布于 2006-07-29 10:07:00
不就是:if KEY not in ('0'..'9') then exit;
是网页语言,是空格
我来回复