|
Вопрос # 3 023/ вопрос открыт / |
|
Здравствуйте, эксперты!
Возникла такая проблема: необходимо отловить нажатие сочетания клавишь в моем приложении. Спомощью RegisterHotkey отлавливаю, но мне надо чтобы сочетания отлавливались только в моей программе, а не глобально.
Отлавливаю нажатие отдельныйх клавиш следующим образом:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_F2 then Showmessage('Pressed F2');
end;
Но вот как мне отловить сочетание клавиш?
 |
Вопрос задал: Ученый (статус: 8-ой класс)
Вопрос отправлен: 22 июля 2009, 16:24
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 10; последнее сообщение — 22 июля 2009, 19:53; участников в обсуждении: 3.
|
Вадим К (статус: Академик), 22 июля 2009, 16:36 [#1]:
keypreview := true для формы? вроде так это свойство называется.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Ученый (статус: 8-ой класс), 22 июля 2009, 16:43 [#2]:
keypreview :=false, меняю на true и все равно глобально отлавливает. отлавливаю спомощью procedure WMHotkey( var msg: TWMHotkey ); message WM_HOTKEY;
|
|
Вадим К (статус: Академик), 22 июля 2009, 16:51 [#3]:
ну так, ловить теперь надо не глобально, а кодом, описанным в вопросе.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Ученый (статус: 8-ой класс), 22 июля 2009, 16:56 [#4]:
в приведенном коде отлавливается нажатие F2, но вот как скажем мне отловить сочетание Alt+F2? что то на подобии if (key=VK_F2) and (key=MOD_ALT) then Showmessage('Pressed F2'); ?
|
|
Ерёмин А.А. (статус: *Администратор), 22 июля 2009, 17:00 [#5]:
... and (Shift = [ssAlt]) ...
|
|
Вадим К (статус: Академик), 22 июля 2009, 17:01 [#6]:
там есть параметр Shift.
Но это множество и проверять надо так
if (key=VK_F2) and (ssCtrl in Shift) then #Ctrl нажат также#
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Вадим К (статус: Академик), 22 июля 2009, 17:04 [#7]:
В примере Андрея получается что проверятеся нажатия только альта и никаких других клавиш-модификаторов. В моем - проверятся нажатие Ctrl, а положение остальных клавиш-модификаторов игнорируется.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Ученый (статус: 8-ой класс), 22 июля 2009, 17:18 [#8]:
Для обоих примеров одно замечание: срабатывает если скажем зажать одну лишнюю клавишу...ну скажем не Alt+F2, а Alt+Q+F2
|
|
Вадим К (статус: Академик), 22 июля 2009, 17:38 [#9]:
а где Вы видели такую комбинацию Alt+Q+F2? это Alt+Q и Alt+F2 по очереди. хотя могут быть исключения. Но одновременно обработать такую комбинацию без прямгого доступа к контролеру клавиатуры очень сложно.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Ученый (статус: 8-ой класс), 22 июля 2009, 19:53 [#10]:
Ясно. Большое спасибо за помощь! Вопрос исчерпан
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|