Главная страница
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.47 MB
Время: 0.063 c
15-1145427644
DelphiN!
2006-04-19 10:20
2006.05.14
Экспорт графика из TChart в Excel


1-1144072886
hgd
2006-04-03 18:01
2006.05.14
Использование google map


15-1145346910
Layner
2006-04-18 11:55
2006.05.14
Если из комп. ActiveX на веб странице реализовать POST посылку


2-1145956053
petun
2006-04-25 13:07
2006.05.14
имена месяцев в правильном формате


4-1140371206
Дубинка
2006-02-19 20:46
2006.05.14
Ошибка с LISTVIEW