|
TPanel을 상속받아 클래스를 하나 만들었습니다.
키값을 받아서 사용하는 부분이 있어서 부모인 TWinControl 의 key부분을 가져와서 직접 구현하였습니다.
DYNAMIC void __fastcall KeyDown(Word & Key, Classes::TShiftState Shift);
DYNAMIC void __fastcall KeyPress(char & Key);
DYNAMIC void __fastcall KeyUp(Word & Key, TShiftState Shift);
그런데 문제가 생겼습니다.
일반키의 경우 KeyDown -> KeyPress 를 거치구요.
화살표등의 키는 KeyUp 만 들어왔습니다.
그래서 KeyUp에다 코딩을 하였는데.
문제는 이 KeyUp 이벤트가 아무때나 호출된다는 것입니다!! -_-;
분명 키를 누르지 않았는데 마우스 동작때도 호출되고. focous가 이동되는 경우도 호출되고.
이 panel이 올라가있는 form을 닫으려할 때도 이 KeyUp 이벤트가 호출되어 프로그램이 끝나지도 않습니다. 물론 끝나긴 합니다만 KeyUp의 내용을 다 처리한 뒤죠.
그래서 무슨 일을 해도 KeyUp 의 내용을 처리해서 엉망이 됩니다.
도대체 무엇이 문제인가요??
form안에 다른 컴포넌트를 적절히 배치하느라 panel에서 키를 받을 수 밖에 없는데..
도와주시면 감사하겠습니다.
좋은 하루 되세요~
|