Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Отловить нажатие клавиши


Автор: EKoshelev 29.12.2004, 12:59
Такая проблема. Мне нужно нажатие клавиш отлавливать, когда я работаю с Image (у неё там вроде нет никаких кейпрессов). Дак вот для отлавливания всяких табов и курсоров есть CMDialogKey для букв и цифр CMDialogChar (вроде), а вот как отловить Del, напирмер, я не знаю. Подскажите мне пожалуйста...

Автор: Bes 29.12.2004, 13:06
Ммм... не совсем понимаю как можно отлавливать нажатие клавиши, если там некуда нажимать.
т.е. нет ни setFocuse ни... ну вообщем как этот класс компонентов называется..?.. не помню короче, курсор туда некуда поставить. :-) (по колхозному так).
Можно отлавливать кейпресы у формы и др. компонентов и считать, что это нажали. Вообщем давай подумаем..

Автор: EKoshelev 29.12.2004, 13:10
Bes, да ну я не очень понятно написал. На самом деле мне нужно чтобы обрабатывался какой-нибудь метод после нажатия какой-нибудь клавиши например del не взирая на то, где сейчас фокус.

Автор: Bes 29.12.2004, 13:13
Тогда... я бы написал обработчик кейапа у формы, а потом кейапы всех др. компонентов переадресовал (или как это правильно называется) на кейап формы.

Автор: EKoshelev 29.12.2004, 13:24
Bes извращение. А если у меня их штук сто? Или двести? Там наверняк должно быть какое-нибудь сообщение Windows.

Автор: Bes 29.12.2004, 13:29
Хм... сомневаюсь, но спорить не буду - может быть. Однако каждый компонент отрабатывает события клавиатуры отдельно..... хотя... надо подумать.
Кстати, может ты не понял - обработчик-то пишется один - там просто в собтиях есть выпадающий список в которо можно выбрать эквивалентность событию... Все равно не катит?...

Автор: <Spawn> 29.12.2004, 13:38
У формы поставь KeyPreview в True, после чего напиши необходимый тебе код в нужных обработчиках формы, в которых тебе нужно будет иметь идентификатор того, что ты в данный момент работаешь с TImage(например отлавливать момент вхождения курсора в область TImage)

Автор: EKoshelev 29.12.2004, 13:41
Bes, понял, конечно. Не катит.

<Spawn>, попробую.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)