Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.14;
Скачать: 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 вся ветка

Текущий архив: 2006.05.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.036 c
3-1142515092
Aleksandr.
2006-03-16 16:18
2006.05.14
Как отскроллировать DBGrid на несколько записей?


1-1144158156
Sergg
2006-04-04 17:42
2006.05.14
Как лучше предоставить доп. информацию к TTreeNode?


4-1140414579
Виталий Ульянов
2006-02-20 08:49
2006.05.14
Работа с портами


15-1145366258
oldman
2006-04-18 17:17
2006.05.14
Что не видел ни одного поста по поводу...


2-1146135245
Alex174
2006-04-27 14:54
2006.05.14
Есть ли картинка на экране?