数据检查(100分)

  • 主题发起人 主题发起人 旧雨
  • 开始时间 开始时间

旧雨

Unregistered / Unconfirmed
GUEST, unregistred user!
我做表单给用户,他们要是在数值型数据位置输入字符怎么检查出来?为什么把字符串截开
成字符后不能与‘1’..‘0’比较大小?? 有现成控件吗???
 
字符和字符串是不同的概念!
 
ONKeyPress
if key in [0,1,2,3,4,5,6,7,8,9] then
 
房客:有更简单的方法吗?
 
还不简单?
比较大小?inttostr()strtoint()
你还是举个例给大家看看
 
可以判断键值的大小介与0到9的ASCII码值之间。
 
to 旧雨:应该是最简单的了。

to 房客:该种方法有缺点,不能阻止鼠标右键的Paste.
 
那么可以在onchange时间里加入代码,如果是非法字符就删掉不显示。
 
郭玉梁:
>该种方法有缺点,不能阻止鼠标右键的Paste.
yes
agree only you
onchange
 
大家的手好快呀。
 
to 房客:要是他们输入两个小数点怎么办?
 
用MASKEDIT控件可以解决控制在数值型数据位置不能输入字符。
 
房客:要是他们输入两个小数点怎么办??还有要是输入错误用删除键都不行!
cylinder:我试了,他要等长相同格式的数据输入,这不可能(用户的数据格式不定)!
请再指点一下具体用法!
 
房客: 怎么不管了????
cylinder:怎么不管了呀?????
 
在change或者keyup或者keydown事件里用try的方法做强制转换

int k;
try
{
k = StrToInt(单元格的值);
}
catch (...)
{
MessageBox(self.Handle,"请输入整数。",Application.Title.c_str(),64);
或者屏蔽掉这个输入。
}
 
try
StoToFloat(...)
except
shommessage('请正确输入数字');
exit
end
 
删除键的ASII码为8
我的方法是两个都用
OnKeyPress:
if not(((Key>='0') and (Key<='9')) or (Key=#8)) then
Key:=#0;

OnChange:
同意 only you
 
多人接受答案了。
 
后退
顶部