|
답변 감사합니다~ ^^
전에도 실수했던 부분인데 또 실수를!
그런데요.. 실행시켜보니까 아무 변화가 없었습니다.
그래서 다시 보니까..
if(XEdit->Text.Length()>0)
{
if((Key<48||Key>57) && Key!=8 && Key!=46 && Key!=13) Key = 0;
if(Key == 46 && point == 0) point ++; // <--- 여기!
if(Key == 46 && point != 0) // <--- 여기!
{
ShowMessage("Retry");
XEdit->Text = " ";
}
................................
}
'// <--- 여기!'가 잘못된 것 같더군요.
두개의 if문이 한 번에 모두 실행되니 당연히...
그래서 아래와 같이 바꾸었습니다.
엔터키를 입력하면 point를 0으로 바꿔줘서, 다시 소수점을 입력할 수 있도록..
---------------------------------------------------------------------------
void __fastcall TDataViewForm::XEditKeyPress(TObject *Sender, char &Key)
{
static int point = 0;
float inc;
if(XEdit->Text.Length()>0)
{
if(point == 0)
{
if((Key<48||Key>57) && Key!=8 && Key!=46 && Key!=13) Key = 0;
if(Key == 46) point ++;
}
else if((Key<48||Key>57) && Key!=8 && Key!=13) Key = 0;
if(Key == 13)
{
inc = StrToFloat(XEdit->Text);
Chart->BottomAxis->Increment = inc;
point = 0;
}
}
else if(Key<48||Key>57) Key = 0;
}
---------------------------------------------------------------------------
그런데 또 문제가 생겼습니다.
문제!!) 엔터키를 입력하기 전에 소수점을 입력했다가 지웠을 경우,
다시 소수점을 입력할 수 없게 되었습니다.
더 쉬운 방법이 있을 것 같은데, 제 실력엔 아직...
저두 고민 중인데.. 좋은 방법 있으면, 답변 부탁드릴게요~
|