怎样限定用户输入整数

wcc73 2005-10-22 12:47:18
如下,如果从Edit1输入的不是整数,就会出错
void __fastcall TForm1::Button1Click(TObject *Sender)
{ int x;
x=Edit1->Text.ToInt() ;
Label1->Caption=IntToStr(x);
}
请问:
1、如何限定用户输入整数。
2、如不限定用户输入整数限,如何进行容错处理。
...全文
167 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wcc73 2005-10-22
  • 打赏
  • 举报
回复
是三位呵呵
wcc73 2005-10-22
  • 打赏
  • 举报
回复
非常感谢两位
g60sl22c 2005-10-22
  • 打赏
  • 举报
回复
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
switch(Key)
{
case '0': //接受数字键0~9的输入
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 8: //这是一个BackSpace键,不能禁止,否则不能实现删除功能了
break;
case '.': //检查是否已存在小数点
if(DotInStr(Edit1->Text))
Key=0;
break;
case '+': //检查是否已存在符号
case '-':
if(SignInStr(Edit1->Text))
Key=0;
break;
default: //对于其他输入键,置Key=0
Key=0;
break;
}
}
wcc73 2005-10-22
  • 打赏
  • 举报
回复
TCSpinEdit在哪里,我怎么找不到,能不能说详细点
wcc73 2005-10-22
  • 打赏
  • 举报
回复
这么说bcb不提供直接的控件输入数字,真是奇怪啊
wf2091139 2005-10-22
  • 打赏
  • 举报
回复
TCSpinEdit
rainfall19831109 2005-10-22
  • 打赏
  • 举报
回复
有很多第3方的控件都可以啊...
随便找个都可以了...
或者直接用BCB里面的MaskEdit,自己设置格式...
wcc73 2005-10-22
  • 打赏
  • 举报
回复
请问什么控件只允许数字和小数点输入
wf2091139 2005-10-22
  • 打赏
  • 举报
回复
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(!IsInt(Trim(edit->Text))) //整型字段
{
ShowMessage("不正确的数值!");
edit->SetFocus();
return;
}
}
//是否整型格式字符串
bool TForm1::IsInt(AnsiString Str)
{
try
{
StrToInt(Str);
return true;
}
catch(...)
{
return false;
}
}

rainfall19831109 2005-10-22
  • 打赏
  • 举报
回复
不好意思...
刚才试了一下...发现try和catch不能捕捉得到...
或者可以试着自己来逐个位扫描判断...
char c;
for(int i=1;i<Edit1->Text.Length();i++)
{
c=Edit1->Text[i];
if(c<'0'||c>'9')
return;
}
rainfall19831109 2005-10-22
  • 打赏
  • 举报
回复
2个方法:
1.改用别的输入控件,只允许输入数字和"."
2.在x=Edit1->Text.ToInt();增加try和catch处理..

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧