回 帖 发 新 帖 刷新版面

主题:[求助]  急...


var i:integer;
i:=strtoint(edit1.text);
我要i的值一定是一个正整数...
如果在edit1.text 中输入了"123.5"怎么办,,或者是"ddd#$%"怎么办..
我应该怎么去判断..
高手求救 啊....



感激感激....

回复列表 (共8个回复)

沙发

异常处理 就可以了
如果需要正整数再加个if条件判断

板凳

在KEYPRESS事件中增加代码,只允许输入0~9.就可以保证输入的都是正整数了.
if KEY not in ('0'..'9') then exit;


而且建议不要使用"strtoint"
最好用"strtointdef(string a,int i);"//意思是如果转换失败,则返回i值
比如 strtointdef('abc',0) 返回的是0

3 楼


请问下一下这里的"keypass"事件..
这个出发事件是不是edit1的一个事件...
说的更详细一点好吗?

谢谢..

4 楼


如果我这样直接写,你看有没有错..
begin
var i:integer;
strtointdef(edit1.text,i);
if i=0 then begin
  showmessage('请输入一个正整数');
   edit1.text=''; 
   end
else
  .......
end;
如果这样直接写的话是不是把所有的都包括进去了..象输入(12.3)或者(da#)这样的错误的信息都能查不出来...

5 楼

你可以用TRUNCK函数啊,就是截取整数部分

6 楼

[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 楼

if KEY not in ('0'..'9') then exit;



这段代码是什么意思。。
解释一下好吗。。
谢谢

8 楼

不就是:if KEY not in ('0'..'9') then exit;
 是网页语言,是空格

我来回复

您尚未登录,请登录后再回复。点此登录或注册