Вниз
Скачать: CL | DM;

Как отловить нажатие alt   Найти похожие ветки 

 
Wolfram ©   (2006-02-20 13:34) [0]

Мне нужно отлавливать нажитие любых клавиш, в том числе сдвиговых (ctrl, alt, shift). Я использую компонент ApplicationEvents, но в него не попадает нажатие клавишы alt. Я пробовал использовать событие формы OnKeyDown, но в него не попадает Tab. Как можно решить эту проблему и отлавливать нажатие любых клавишь?


 
n0name   (2006-02-20 13:41) [1]

отлавливать сообщения напрямую.
WM_KEYDOWN + WM_KEYUP


 
Wolfram ©   (2006-02-20 13:48) [2]

Ну, дык, в том то и дело - когда жмёшь alt WM_KEYDOWN не приходит!!!
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
 var Handled: Boolean);
begin
if msg.message=WM_KEYDOWN then ShowMessage("test");
end;
Так вот, мессага не вылетает при нажатии alt.


 
Leonid Troyanovsky ©   (2006-02-20 14:04) [3]


> Wolfram ©   (20.02.06 13:34)  
> Мне нужно отлавливать нажитие любых клавиш, в том числе
> сдвиговых (ctrl, alt, shift). Я использую компонент ApplicationEvents,
>  но в него не попадает нажатие клавишы alt.


Все попадает.

procedure TForm1.ApplicationEvents1ShortCut(var Msg: TWMKey;
 var Handled: Boolean);
begin
 if msg.CharCode = vk_menu then
   {Нажата клавиша Alt}
end;


--
Regards, LVT.


 
delphi-oracle ©   (2006-02-20 23:25) [4]

Есть такая класная функция GetKeyState
VK_MENU - альт
getkeystate(VK_MENU)<-126 альт нажат
getkeystate(VK_TAB)<-126 таб нажат
GetKeyState возвращает значение -127 или -128.
Единственная проблема - ето не событие, а просто проверяет, нажата ли клавиша. Я однажды уже делал что-то такое и обнаружил, что функция замечает все клавишы, независимо от активного приложения.
Если нажать Ctrl+левая кнопка мыши на VK_TAB, то увидиш все VK_*


 
Wolfram ©   (2006-02-21 14:13) [5]

Спасибо, знаю я про все эти функции, но есть еще и компонет HotKey...
Это то, что мне было нужно. :)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
15-1145388753
Strate
2006-04-18 23:32
2006.05.14
Очень прикольная игра - COLOBOT


1-1144302826
racer
2006-04-06 09:53
2006.05.14
Как сделать всплывающую подсказку. Подскажите. Горю.


15-1145520353
xayam
2006-04-20 12:05
2006.05.14
Предложение, измененить скрипт этого форума


9-1129754635
Ricks
2005-10-20 00:43
2006.05.14
Элементарный поиск пути


2-1145789647
Начинающий5
2006-04-23 14:54
2006.05.14
Ctrl + del




   Наверх