韩冰 发表于 2005-1-26 12:27

判断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-&gt;Text.ToInt,如果不产生异常,表明是整数,反之用 </P>
<P>Edit1-&gt;Text.ToDouble,如果不产生异常,那么是小数,反之 </P>
<P>就表明不是合法的数字 </P>
<P>这个办法最方便。大概的程序代码如下 </P>
<P>  </P>
<P>  try </P>
<P>  { </P>
<P>    Edit1-&gt;Text.ToDouble(); </P>
<P>    try </P>
<P>    { </P>
<P>      Edit1-&gt;Text.ToInt(); </P>
<P>      ShowMessage("is a int"); </P>
<P>    } </P>
<P>    catch(const EConvertError &amp;e) </P>
<P>    { </P>
<P>      ShowMessage("is a double"); </P>
<P>    } </P>
<P>  } </P>
<P>  catch(const EConvertError &amp;e) </P>
<P>  { </P>
<P>    ShowMessage("not a int ot double"); </P>
<P>  } </P>
<P>  </P>
<P>上面的代码已通过调试 </P>
页: [1]
查看完整版本: 判断EDIT框输入的是否为数字