Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.09.04;
Скачать: CL | DM;

Вниз

Как определить момент манипуляции устройством ввода?   Найти похожие ветки 

 
Alexei ©   (2009-08-15 01:03) [0]

Как в целом для приложения (а не для конкретной формы) программно определить, что пользователь
1) нажал клавишу (любую) на клавиатуре;
2) сделал манипуляцию мышью (нажал левую / правую кнопку мыши или покрутил колесом)?


 
TIF ©   (2009-08-15 02:04) [1]

Очень просто :)
Нужно просто ловить сообщения - messages, посылаемые системой

1) Читаем MSDN и собираем нужные нам сообщения:
WM_KEYDOWN:
http://msdn.microsoft.com/en-us/library/ms646280(VS.85).aspx
WM_MOUSEWHEEL:
http://msdn.microsoft.com/en-us/library/ms645617(VS.85).aspx
и так далее

2) Размещаем на форме компонент TApplicationEvents, с помощью которого будем ловить сообщения, посылаемые нашему application
3) В событии OnMessage у него прописываем нужный код, который должен выполняться в каждом конкретном случае, например:
case Msg.message of
    WM_KEYDOWN: ListBox1.Items.Add("Нажата клавиша");
      WM_KEYUP: ListBox1.Items.Add("Отжата клавиша");
 WM_SYSKEYDOWN: ListBox1.Items.Add("Нажата системная клавиша");
   WM_SYSKEYUP: ListBox1.Items.Add("Отжата системная клавиша");
 и так далее :)
end;


PS: полный список сообщений, которые нужны в данном случае
WM_KEYDOWN
WM_KEYUP
WM_SYSKEYDOWN
WM_SYSKEYUP
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_RBUTTONDOWN
WM_RBUTTONUP
WM_MOUSEWHEEL

Подробности - в MSDN (см. пункт 1), хотя и по их названиям можно запросто понять, к каким событиям они привязаны



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

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

Наверх




Память: 0.47 MB
Время: 0.008 c
1-1265749109
azatsh
2010-02-09 23:58
2011.09.04
вертикальный TabControl


15-1305318604
Юрий
2011-05-14 00:30
2011.09.04
С днем рождения ! 14 мая 2011 суббота


2-1305792448
Артур
2011-05-19 12:07
2011.09.04
Сохранение наследника TPersistent


2-1305708984
test2
2011-05-18 12:56
2011.09.04
округление


15-1305577799
Юрий
2011-05-17 00:29
2011.09.04
С днем рождения ! 17 мая 2011 вторник