void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if ((Key <char( '0 ') | |Key >char( '9 '))) //只能输入数字
{
if ((Key!=8)&&(Key!=13))//支持回车和退格
{
Key=0;
}
}
}
这些都是我从这里找到的,但是为什么我一编译就报告Undefined symbol 'apos',是不是少加入了什么文件呢?
10 个解决方案
#1
使用api函数吧
long Style = GetWindowLong(Edit->Handle,GWL_STYLE);
Style |= ES_NUMBER;
SetWindowLong(Edit->Handle,GWL_STYLE,Style);
long Style = GetWindowLong(Edit->Handle,GWL_STYLE);
Style |= ES_NUMBER;
SetWindowLong(Edit->Handle,GWL_STYLE,Style);
#2
关于Edit只能输入数字的问题有过讨论,可以搜索一下。
注意一点的是,是否还要屏蔽粘贴
注意一点的是,是否还要屏蔽粘贴
#3
由于KeyPress事件发生在Onchange以前,故可利用Keypress事件,判断按键是不是从零到九,或是backspace
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if ((Key<'0'||Key>'9')&&Key!='\b')
Key='\0';
}
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if ((Key<'0'||Key>'9')&&Key!='\b')
Key='\0';
}
#4
另外你可以直接用maskedit控件就行了
#5
大家附代码时请用:插入源代码方式。
#6
使用api函数 也可以直接用maskedit控件 就可以完成了
#7
maskedit控件.
#8
void __fastcall TForm2::Edit1KeyPress(TObject *Sender, char &Key)
{
if((Key<'0'||Key>'9')&&Key!=13&&Key!=VK_BACK) Key=NULL;
}
{
if((Key<'0'||Key>'9')&&Key!=13&&Key!=VK_BACK) Key=NULL;
}
#9
复制到这里代码就变形了?晕
void __fastcall TForm2::Edit1KeyPress(TObject *Sender, char &Key)
{
if((Key<'0'||Key>'9')&&Key!=13&&Key!=VK_BACK) Key=NULL;
}
#10
楼上正解。
#1
使用api函数吧
long Style = GetWindowLong(Edit->Handle,GWL_STYLE);
Style |= ES_NUMBER;
SetWindowLong(Edit->Handle,GWL_STYLE,Style);
long Style = GetWindowLong(Edit->Handle,GWL_STYLE);
Style |= ES_NUMBER;
SetWindowLong(Edit->Handle,GWL_STYLE,Style);
#2
关于Edit只能输入数字的问题有过讨论,可以搜索一下。
注意一点的是,是否还要屏蔽粘贴
注意一点的是,是否还要屏蔽粘贴
#3
由于KeyPress事件发生在Onchange以前,故可利用Keypress事件,判断按键是不是从零到九,或是backspace
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if ((Key<'0'||Key>'9')&&Key!='\b')
Key='\0';
}
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if ((Key<'0'||Key>'9')&&Key!='\b')
Key='\0';
}
#4
另外你可以直接用maskedit控件就行了
#5
大家附代码时请用:插入源代码方式。
#6
使用api函数 也可以直接用maskedit控件 就可以完成了
#7
maskedit控件.
#8
void __fastcall TForm2::Edit1KeyPress(TObject *Sender, char &Key)
{
if((Key<'0'||Key>'9')&&Key!=13&&Key!=VK_BACK) Key=NULL;
}
{
if((Key<'0'||Key>'9')&&Key!=13&&Key!=VK_BACK) Key=NULL;
}
#9
复制到这里代码就变形了?晕
void __fastcall TForm2::Edit1KeyPress(TObject *Sender, char &Key)
{
if((Key<'0'||Key>'9')&&Key!=13&&Key!=VK_BACK) Key=NULL;
}
#10
楼上正解。