判断EDIT框输入的是否为数字
<P> </P><P>在onKeyPress事件中作一些处理 </P>
<P>使得输入只能是数字和一个小数点 </P>
<P> </P>
<P>然后设置相应的标志。 </P>
<P> </P>
<P>当然,还有另外的办法,就是用pos函数来查找是否有小数点 </P>
<P>如果没有,那么就是整数,反之是小暑,但是这个方法有一个缺陷 </P>
<P>就是如果输入的不只是数字,还有字母的话,那么判断显然是错误的。 </P>
<P>此外,如果是以指数方式表示的,那么前两种的判断方法都会复杂起来。 </P>
<P> </P>
<P>于是,还有第三个办法,用好Exception </P>
<P>首先,用Edit1->Text.ToInt,如果不产生异常,表明是整数,反之用 </P>
<P>Edit1->Text.ToDouble,如果不产生异常,那么是小数,反之 </P>
<P>就表明不是合法的数字 </P>
<P>这个办法最方便。大概的程序代码如下 </P>
<P> </P>
<P> try </P>
<P> { </P>
<P> Edit1->Text.ToDouble(); </P>
<P> try </P>
<P> { </P>
<P> Edit1->Text.ToInt(); </P>
<P> ShowMessage("is a int"); </P>
<P> } </P>
<P> catch(const EConvertError &e) </P>
<P> { </P>
<P> ShowMessage("is a double"); </P>
<P> } </P>
<P> } </P>
<P> catch(const EConvertError &e) </P>
<P> { </P>
<P> ShowMessage("not a int ot double"); </P>
<P> } </P>
<P> </P>
<P>上面的代码已通过调试 </P>
页:
[1]