首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

DBEdit字符限制解决方法

2012-02-02 
DBEdit字符限制我有DBEdit连接数据库的一个字段,程序限制输入符号,字段是双精度数字只允许小数点、数字、和

DBEdit字符限制
我有DBEdit连接数据库的一个字段,程序限制输入符号,字段是双精度数字只允许小数点、数字、和负号。我想实现不能输入2个负号,且如果离开时内容必须能够转换成数字。我用Edit能够实现,但是DBEdit老是出现问题,感觉DBEdit对键盘响应总是慢一步,比如我在keypress里面定义了个条件,必须按2下才会响应,不知为什么,请高手指教

[解决办法]

C/C++ code
void __fastcall TForm1::dbedt1KeyPress(TObject *Sender, char &Key){   if(!((Key>='0'   &&   Key<='9' )   ||   Key== 8   ||  Key=='-'||Key== 32)) {    Key   =0;  } else if ( Key == '-')      {       if(dbedt1->Text.Pos("-"))        Key   =0;      }}
[解决办法]
C/C++ code
AnsiString Temp = ""; 

void __fastcall TForm1::dbedt1Enter(TObject *Sender)
{
Temp = dbedt1->Text;
}
//---------------------------------------


void __fastcall TForm1::dbedt1Change(TObject *Sender)
{
try{
dbedt1->Text.ToInt() ;
}
catch(...)
{
//ShowMessage("输入错误!"); //这里也可以什么也不提示
if(!Temp.IsEmpty() )
dbedt1->Text =  Temp;
else
  dbedt1->Text ="0";
dbedt1->SetFocus() ;
}
}
//---------------------------------------
这个你需要自己根据需要改动一下

热点排行