void __fastcall TForm1::Edit1Change(TObject *Sender)
{
TEdit *ed = (TEdit *)Sender;
AnsiString txt = ed->Text;
int tag = ed->Tag;
int len=txt.Length();
if(len >= 1 && txt != "-" && txt != ".")
{
if(!isNumber(txt))
{
Beep();
ShowMessage("輸入的字元不合法!");
ed->Text = oldText;
ed->Perform(WM_KEYDOWN,VK_END,0);
ed->Perform(WM_KEYUP,VK_END,0);
}else{
oldText = ed->Text;
}
}
}
//---------------------------------------------------------------------------
bool __fastcall TForm1::isNumber(const AnsiString nStr)
{
AnsiString chkStr="0123456789.-";
bool rc=true;
for(int i=1; i<=nStr.Length(); i++)
{
if(chkStr.Pos(nStr.SubString(i,1)) == 0)
{
rc=false;
break;
}
}
return rc;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Exit(TObject *Sender)
{
TEdit *ed = (TEdit *)Sender;
int err = 0;
AnsiString txt = ed->Text;
int tag = ed->Tag;
int len=txt.Length();
if(len >= 1 && txt != "-" && txt != ".")
{
if(isNumber(txt))
{
double f=double(StrToFloat(txt));
if (f < -100 || f > 100) err=2;
}else{
err = 1;
}
}
if(err > 0)
{
AnsiString msg;
if (err == 1)
{
msg = "輸入的字元不合法!";
}else{
msg = "數值超過範圍!";
}
Beep();
ShowMessage(msg);
ed->SetFocus();
ed->Perform(WM_KEYDOWN,VK_END,0);
ed->Perform(WM_KEYUP,VK_END,0);
}
}
- Aug 22 Sat 2009 16:19
[BCB6]檢查Edit的值
全站熱搜
留言列表
發表留言