이벤트 부분에서 막히는데요
인스펙터에 있는이벤트에서 OnKeyDown 이벤트를쓸때보면
void __fastcall Form1::OnKeyDown(TObject *Sender, char &Key,TShiftState Shift)
{
;;
}
이렇게 핸들러가 생기자나요
콤포넌트에 이벤트를 만들때
typedef void (__closure *TKeyBoardEvent)(ststem::classes::TObject *Sender, char &Key,TShiftState Shift);
이렇게 콤포넌트 클래스밖에 정의해두고 위선언이 제대로맞다치구요;
클래스안에
TKeyBoardEvent FKeyDown;
이렇게 선언해둔뒤에
퍼블리시드에
__property TKeyBoardEvent OnKeyDown = {read=FKeyDown,write=FKeyDown};
이렇게 하고 컴파일하고 설치하면 이벤트에뜨긴 뜨자나요?
그런데 문제는 저렇게 해둔다고해서 해당이벤트가 실행되지는 않자나요
제가 알고싶은거는 Key 함수에 키메세지가 들어가도록하고싶거든요
핸들러장석하면 Key 메시지에서 특정키가눌러지면 함수를 실행하도록 하는거거든요
물론 다른함수에 다른행동 일수도있구요
Key함수에 키메세지가 들어가도록 하고싶은데요 예적으로
메세지맵으로하는걸보면 MESSAGE_HANDLER(WM_USER+1,TMessage,FKeyDown)
이렇게하면 안될거같은느낌이들거든요
직접 dispatch 함수를 직접 오버라이딩해야하는건가요?
오버라이딩해야 한다면 어떻게 해야되는지 알고싶어요
Shift 함수에도 해당 메세지가 들어가야되고 Key 에도 해당 키메세지가 들어가있어야되는데
어떻게 해야될지를 모르겠어요 ㅜ.ㅜ
|