| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Работа с клавой |
| Автор: SAVANE 3.9.2006, 14:37 | ||
Когда в пустой форме прописываю процедуру которая обрабатівает нажатие кнопки.
То все работает!!! Когда же помещаю на форму любой обьект: кнопку, поле, и т.д. уже не перехватівает нажатие! В чем траблы? |
| Автор: SGTeam 3.9.2006, 15:03 |
| Хм.......А не пробовал в обработчике OnKeyPress помещать свой код?тогда в обработчиках(onkeypress) других контролов на форме необходимо вызывать Form.OnKeyPress. |
| Автор: Lence 3.9.2006, 21:21 |
| можно еще и в KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); |
| Автор: Rodman 3.9.2006, 22:02 |
| Ты слышал про библиотеку JEDI??? Если есть возможность скачай (она бесплатная).... Там есть компонент JvApplicationHotKey1... хоть на него можно повесить только один набор, но работает всегда... |
| Автор: Lence 3.9.2006, 22:12 |
| еще есть отдельный компонент HotKeyManager с ним можно отловить все что хочешь, даже если программа не активна а где-то спрятана.. |
| Автор: Alexeis 4.9.2006, 00:45 | ||
| SAVANE, все очень просто сообщения получает окно с фокусом ввода, если бросить на форму компонент, то он и получит фокус ввода. Проще всего использовать application.onMessage так как через него проходят многие сообщения, но он кажись не получает сообщения посланные postmessage, надо попробовать. Добавлено @ 00:48 Работает!
|
| Автор: Fedia 4.9.2006, 06:24 | ||
| Rodman, alexeis1, если не секрет, то чем
|
| Автор: SAVANE 4.9.2006, 16:13 |
| Спасибо!!! Form.KeyPreview := True реально то что было нужно. |
| Автор: Alexeis 4.9.2006, 16:39 |
| Fedia, я и не говорил что не устраивает, просто перехват на уровне приложения еще более глобальный. Я думаю, что хорошо когда есть много рабочих вариантов, тогда можно выбрать тот который устраивает больше. |