|
헐.. TApplicationEvents 컴퍼넌트의 존재를 지금 처음 알았네요....
시대는 21세기인데, 아직 20세기를 못 벗어난 아제나입니다;; 씨빌더 1.0 수준 ㅜㅜ
송득보 님이 쓰신 글 :
: 해결했네요. 원인을 알았습니다.
:
: 마우스 클릭시 WM_KEYUP에 wParam = 0x00e5 값의 메시지가 자동으로 발생이 되네요.
:
: 그래서 한글입력시 조합대기모드에서 빠지는 것이었습니다.
:
: 에디트의 keyup 이벤트에서 체크해서 빼주면 효과없구요.
:
: TApplicationEvents의 OnMessage로 체크해서 아예 그 메시지를 차단해버렸습니다.
:
: if (Msg.message == WM_KEYUP && Msg.wParam == 0x00e5)
: {
: Handled = true;
: } //
:
: 그랬더니 아주 잘 한글이 만들어지네요.
:
: -로크오빠
:
: 송득보 님이 쓰신 글 :
: : 회사 일때분에 이번에는 터치스크린의 가상키보드를 개발중입니다.
: :
: : 사용자가 터치스크린으로 버튼식 키보드 자판을 클릭하면
: :
: : 에디트박스에 한글 혹은 영문이 찍히게 되어있습니다.
: :
: : 한글코드를 발생시키는 api는 keybd_event를 쓰구요.
: :
: : 근데 웃긴게 '한'이라는 글자를 칠때 ㅎ, ㅏ, ㄴ을 한 이벤트 안에서 연속으로 실행시키면
: :
: : '한'이 되거든요. 근데 클릭하면 이게 따로 'ㅎㅏㄴ'이 되어버리는겁니다.
: :
: : 왜그런가 노심초사하다가 보니.. 버튼을 누르고 있는 상태에서 이미 에디트 박스의 커서는
: :
: : 한글 조합키를 기다리는 네모박스 상태에서 맨끝으로 이동하여 얇은 세로선..다음 문자를 기다리는 상태로 전환이 되어있더라구요.
: :
: : 그러니 이 상태에서 키코드값을 보내면 앞의 한글자모와 조합이 되지못하고 개별문자로 찍게되는것이더군요.
: :
: : TSJImgBtn을 쓰는데..혹시 몰라서 포커스가 안오는 TSpeedButton으로 테스트해봐도 똑같네요.
: :
: : 왜 이러죠? 이 문제를 해결하신 분들은 어떻게 해결하셨는지요?
: :
: : 답답해 죽겠네요. 포커스 이동은 없는데 왜 다른 버튼을 누를때 -누르고 있는 상태- 에디트 박스의 커서 상태가 바뀌는건가요?
: :
: : 이것만 해결하면 가상키보드 개발완료거든요. 헬프 미...
: :
: : -로크오빠
|