![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать интервал между кликами дабл клика в винде? [D6, Win95/98, WinME, NT4, Win2k, WinXP]
Olorin © (2002-08-19 14:13:00)О завернул то... в общем надо! :o)
Ученик (2002-08-20 09:21:00) [1]>Olorin © (20.08.02 06:41)
Что именно не сработало, в каких условиях ?
Olorin (2002-08-20 06:41:00) [2]>Ученик ©
Хм не сработало... вот как бы проверить... LParam и WParam по идее содержат виртуальный код клавиши?
Ученик (2002-08-19 15:57:00) [3]>Olorin © (19.08.02 15:44)
Если он есть :)
Olorin (2002-08-19 15:44:00) [4]Ок спасибо я попробую и отпишу... можно ведь и по коду клавиши на худой конец распознавать :o)
Ученик (2002-08-19 15:36:00) [5]procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
var
ShiftState: TShiftState;
begin
if (Msg.Message = WM_KEYDOWN) then begin
ShiftState := KeyDataToShiftState(Msg.LParam);
if (ShiftState = [ssCtrl]) and (Char(Msg.WParam) in ["A", "B", "C"]) then
ShowMessage("Ctrl + " + Char(Msg.WParam))
end
end;
Не уверен, что Char(Msg.WParam) всегда работает правильно
Olorin (2002-08-19 15:22:00) [6]>Ученик ©
Угу похоже я в ФАКе тут нашел что типа через него можно... а вот как догадайся сам :o(
Точно помню что кто-то раньше возможно даже не тут писал пример подобный... типа ловятся клавишные сообщения к форме (WM_KEY чего-то там вроде) и из них фильтруют информацию о нажатой комбинации клавишь... если я конечно не путаю... хотя Application.OnMessage реальнее помоему... но вот как??
Отловить то нужно 3 комбинации Ctrl+A, Ctrl+B, Ctrl+C ;o(
Ученик (2002-08-19 15:18:00) [7]Может Application.OnMessage
Olorin (2002-08-19 15:16:00) [8]>Ученик ©
Хм нее.. есть способ похожий на пример перетаскивания окна за любой контрол... мне надо отловить 3 комбинации при активном окне... и не обращать внимания если окно не активно... я вижу такой вариант... обрабатывать клавиатурные комбинации к приложению... но вот как... не могу найти пример :o(
Ученик (2002-08-19 15:11:00) [9]Вариант: проверка на GetForegroundWindow
Olorin (2002-08-19 15:06:00) [10]>Ученик ©
>Игорь Шевченко ©
>Skier ©
Спасибо ;o)
Вот еще бы с хоткеем разобраться бы.. :o/
Skier (2002-08-19 14:44:00) [11]>Olorin
Извини, не то :)
см. Ученик © (19.08.02 14:32) и Игорь Шевченко © (19.08.02 14:33)
Игорь Шевченко (2002-08-19 14:33:00) [12]GetDoubleClickTime - максимально допустимый интервал в миллисекундах между двумя кликами мыши, которые будут считаться за DoubleClick
Ученик (2002-08-19 14:32:00) [13]GetDoubleClickTime
Aleksey Pavlov (2002-08-19 14:26:00) [14]Ставьте глобальную ловушку "на мышь" и при возникновении события "двойной клик" запускать таймер, при повторном событии - останавливать таймер и скидывать результаты, к примеру, в файл.
Skier (2002-08-19 14:25:00) [15]>Olorin
SystemParametersInfo(...) + SPI_SETDOUBLECLICKTIME