使Edit控件只能输入数字!
<P>void __fastcall TForm1::Edit1Change(TObject *Sender){
char *string;
int i,j,k;
char ch;
bool flag=false;
k=Edit1->Text.Length();
string=new char;
strcpy(string,Edit1->Text.c_str());
for(i=0;i<k;i++)
{
ch=string;
if(!(ch>='0' && ch<='9' || ch=='.'))
{
for(j=i;j<k;j++)
string=string;
k--;
flag=true;
}
}
if(flag)
Edit1->Text=AnsiString(string);
delete[] string;
//GlobalText=Edit1->Text;
}
//---------------------------------------------------------------------------
*************************************************************************************************</P>
<P>void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if(!(Key>='0' && Key<='9' || Key=='.' || Key=='\b'))
Key=0;
}
//--------------------------------------------------------------------------- </P>
<P>*************************************************************************************************</P>
<P>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;
}
}
//---------------------------------------------------------------------------
bool __fastcall TForm1::DotInStr(AnsiString ass)
{
int ii,ll;
ll=ass.Length();
for(ii=0;ii<ll;ii++)
{
if(ass.c_str()=='.')
{
return True;
}
}
return False;
}
//该函数检查字符串前面是否已存在"+、-"符号
bool __fastcall TForm1::SignInStr(AnsiString ass)
{
int ii,ll;
ll=ass.Length();
for(ii=0;ii<ll;ii++)
{
if((ass.c_str()=='+')||(ass.c_str()=='-'))
{
return True;
}
}
return False;
}
</P>
页:
[1]