Как я могу обрабатывать клавиши со стрелками в пользовательском компоненте в Delphi?

Я использую делфи ХЕ. Я разрабатываю компонент, который исходит от TPanel. TApGUITab=class(Tpanel) Я обработал событие нажатия клавиши, обработав сообщение WMKeyDown, но оно не вызывается, когда я нажимаю клавиши со стрелками, и устанавливает фокус на другой элемент управления вместо вызова события. Что мне теперь делать?


person javid    schedule 26.10.2010    source источник
comment
Вы уверены, что хотите выйти из TPanel? Обычно, когда вы разрабатываете пользовательские (оконные) элементы управления, вы позволяете им происходить от TCustomControl.   -  person Andreas Rejbrand    schedule 26.10.2010


Ответы (1)


Это легко. Просто ответьте на сообщение WM_GETDLGCODE и вернитесь

Message.Result := Message.Result or DLGC_WANTCHARS or
                                     DLGC_WANTARROWS or DLGC_WANTTAB or
                                     DLGC_WANTALLKEYS;
person Andreas Rejbrand    schedule 26.10.2010
comment
Спасибо тебе, друг. Просто ПРАВИЛЬНЫЙ ответ. - person javid; 26.10.2010