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
[41332] Re:Re:Re:[질문]그럼 방법을 다시 바꿔봐야 겠네요..ㅠ0ㅠ
유영인 Cuperido [cuperido] 775 읽음    2005-08-05 11:39
안녕하세요.

: TEdit 의 MaxLength를 22까지 두고..
: 19 칼럼, 20 칼럼을 각각 0x80보다 큰가를 검색해서 하는 방법은 어떨까요??

이 역시 똑같은 문제가 발생할 것 같습니다.


: 한가지 덧붙여 질문 드리자면 OnKeyPress 이벤트가 정확하게 동작하는 시점이 언제 인가요??

OnKeyPress 이벤트는  OnKeyDown -> OnKeyPress -> OnKeyUp 이렇게 발생됩니다.
KeyPress는 키 입력 하나가 완성되면 즉, 한 단위로 측정할 수 있는 키 하나가 눌려지면 발생됩니다.
엄밀히 더 정확히 말해서는
OnKeyDown -> OnKeyPress -> Edit 처리 및 화면 표시 -> OnKeyUp
이런 단계로 이루어지고, 처리 및 화면 표시가 이루어 지기 전인 KeyPress 이벤트에서
인자인 Key를 Key = 0 으로 설정해 주시면 키 처리가 취소됩니다.


: 결론이 영문이던, 한들이던, 어떤키를 누르던 1만 증가한다는 겁니다.
: 더군다나 한글은 키를 누를때가 아니라 한글자를 완성하고 커서가 움직여야 비로서 증가한다는 거죠..
: 이부분에 대해서도 설명 부탁드리겠습니다. (__);;;

한글을 입력하셨는데 1이 증가한다는건 무슨 뜻인지 잘 이해가 가지 않습니다.
'안' 이라는 글자를 입력했는데, Text.Length() 에서 1이 나오는 것은 charset 에 문제가
있을수도 있습니다. 그리고, 한 글자를 완성하고 키를 움직이면 증가하는 것은 위의 KeyPress
발생 순서의 이유와 동일합니다. (KeyUp에 넣어주시면 이 문제는 해결될 수 있습니다)


cuperido

유랑 님이 쓰신 글 :
: 답변 감사드립니다.
:
: 다른 방법을 다시 한번 강구해 봐야 겠네요..^^;;
:
: TEdit 의 MaxLength를 22까지 두고..
:
: 19 칼럼, 20 칼럼을 각각 0x80보다 큰가를 검색해서 하는 방법은 어떨까요??
:
: 한가지 덧붙여 질문 드리자면 OnKeyPress 이벤트가 정확하게 동작하는 시점이 언제 인가요??
:
: void __fastcall TfrmMain::Edit_KeyPress(TObject *Sender, char &Key)
: {
: int nLength;
:     nLength = dynamic_cast<TEdit *>(Sender)->Text.Length();
:
:             Caption = nLength;
: }
:
: 라는 간단한 소스를 이용해서 테스트 해봤는데요,
:
: 결론이 영문이던, 한들이던, 어떤키를 누르던 1만 증가한다는 겁니다.
: 더군다나 한글은 키를 누를때가 아니라 한글자를 완성하고 커서가 움직여야 비로서 증가한다는 거죠..
: 이부분에 대해서도 설명 부탁드리겠습니다. (__);;;

+ -

관련 글 리스트
41310 [질문]Edit에 대한 질문 입니다. 유랑 874 2005/08/04
41325     Re:[질문]Edit에 대한 질문 입니다. 유영인 Cuperido 946 2005/08/04
41330         Re:Re:[질문]그럼 방법을 다시 바꿔봐야 겠네요..ㅠ0ㅠ 유랑 748 2005/08/05
41332             Re:Re:Re:[질문]그럼 방법을 다시 바꿔봐야 겠네요..ㅠ0ㅠ 유영인 Cuperido 775 2005/08/05
41333                 Re:Re:Re:Re:[질문]그럼 방법을 다시 바꿔봐야 겠네요..ㅠ0ㅠ 유랑 745 2005/08/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.