|
OnKeyPress나 OnKeyDown을 써보셨다면, 아마도 변수를 하나 만들어서 키가 눌려졌을 때 세팅하게 하고,
루프를 도는 중에 그 값을 체크하도록 하셨겠죠? 거기다 더해서, 루프 중간에 변수값을 체크하기 직전에
Application->ProcessMessages(); 이렇게 삽입하세요.
키를 눌러도 루프 중간에서 값이 체크가 안되는 것은 루프가 바쁘게 돌아가는 중이어서 키 입력 메시지가
처리되지 않고 메시지큐에 쌓여버리기 때문입니다. 더 정확하게는, 하나의 메시지 핸들러 실행중에는 원래
다른 메시지를 처리하지 못한다고 생각하시는 것이 정확합니다. (가장 정확하게는 모든 실행코드...)
이런 경우에 Application->ProcessMessages();를 실행시키면, 이 함수 내부에서 강제로 메시지를 읽어다가
처리해줍니다. 이 함수가 하는 일은 루프를 돌면서 현재 메시지큐에 쌓인 모든 메시지를 API의 PeekMessage()로
읽어와서 강제로 처리하는 역할을 합니다.
그럼..
Lenz 님이 쓰신 글 :
: 제목 그대로 반복문 실행 도중에 ESC 키를 누르면 강제로 break 되도록
: 하고 싶은데 Onkey... 이벤트는 반복문 실행 도중에는 먹히질 안네요..
: 좋은 방법이 없을까요?
: 답변 부탁드립니다.
|