| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > TCustomControl и KeyDown |
| Автор: Proxin 9.10.2011, 17:36 |
| Проблема. Пишу компонент, наследуюсь от tcustomcontrol, нужно делать определённую вещь по зажимании клавиши. Пишу procedure KeyPress(...); override;, но она не срабатывает. Более того - не ловится даже WM_KEYPRESS. Почитал по интернету - у многих такая проблема. Как её решить? Если что, пишу в delphi 2010. |
| Автор: Ne1tr1n0 14.10.2011, 13:02 | ||
| А в родителе перехватывать WM_KEYDOWN и пересылать это сообщение компоненту? У меня например меню со скроллбаром тоже наследуется от TCustomControl, я в форме обрабатываю WM_MOUSEWHEEL, WM_KEYDOWN, а в обработчиках формы делаю:
|
| Автор: Proxin 21.10.2011, 00:53 |
| это извращение и костыль. неужели никто не знает, почему такая хрень случается? |
| Автор: CROTishka 21.10.2011, 18:16 |
| ставьте бряк в TApplication.WndProc и дебажьте дальше. отловить куда оно дальше уходит - это и ребёнок сможет. беглый телепат-mode даёт подозрение, что у вас шорткат есть(про который вы забыли, или не знали - они хитрые бывают. например - подчёркивание первой буквы в кэпшэне задаёт шорткат) на ваш мессадж, который вы ловите, тогда он не дойдёт никуда дальше, а прямо на верхнем уровне отловится. |