C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[16029] Re:Re:[질문] EditKeyPress이벤트에서 키보드 처리...
박보연 [pbyeon] 821 읽음    2002-03-06 14:10
답변 감사합니다~ ^^
전에도 실수했던 부분인데 또 실수를!

그런데요.. 실행시켜보니까 아무 변화가 없었습니다.
그래서 다시 보니까..

  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;
}
---------------------------------------------------------------------------

그런데 또 문제가 생겼습니다.

문제!!) 엔터키를 입력하기 전에 소수점을 입력했다가 지웠을 경우,
       다시 소수점을 입력할 수 없게 되었습니다.

더 쉬운 방법이 있을 것 같은데, 제 실력엔 아직...

저두 고민 중인데.. 좋은 방법 있으면, 답변 부탁드릴게요~

+ -

관련 글 리스트
16000 [질문] EditKeyPress이벤트에서 키보드 처리... 박보연 1242 2002/03/05
16004     Re:[질문] EditKeyPress이벤트에서 키보드 처리... 꼴(이성렬) 810 2002/03/05
16029         Re:Re:[질문] EditKeyPress이벤트에서 키보드 처리... 박보연 821 2002/03/06
16033             Re:Re:Re:[질문] EditKeyPress이벤트에서 키보드 처리... 꼴(이성렬) 1037 2002/03/06
16034                 Re:Re:Re:Re:[질문] EditKeyPress이벤트에서 키보드 처리... 박보연 869 2002/03/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.