|
Вопрос # 4 572/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Подскажите пжлста как можно отловить нажатие клавиши(или сочетания клавиш) в течении определенного времени? Например, если в течении 2х секунд 2 раза нажали клавишу F5, то вылазиет спец.окно.
Заранее спасибо!
 |
Вопрос задал: Muratov Radik (статус: Посетитель)
Вопрос отправлен: 10 сентября 2010, 10:31
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Muratov Radik!
Все делается просто и примитивно. Заводим себе флажок. лучше его сделать приватным полем формы
private
flag:LongInt;
где нибудь в FormCreate обнуляем его.
flag :=0;
А теперь прописываем реакцию на нажатие кнопки.
var curr:LogInt;
begin
// здесь нужно вставить проверку, что нажата именно наша спецклавиша
curr := GetTickCount;//кол-во миллисекунд от старта системы
if flag = 0 then begin // это первое нажатие
flag := curr;
exit;
end;
if curr - flag < 2000 then begin //если разница между текущим нажатием и предыдущим составляет меньше 2 секунд
// здесь вставить обработку ситуации - клавиша нажата дважды за 2 секунды.
end
// а сюда попадаем, если клавиша была нажата с большим интервалом.
flag := 0;
end;
конечно, нужно дополнить код, что бы он отслеживал, что нажата именно та самая клавиша, но я думаю справитесь:)
И обратите внимание - никаких таймеров!
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 10 сентября 2010, 10:47
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 10 сентября 2010, 11:41; участников в обсуждении: 2.
|
Тов. Женька (статус: 3-ий класс), 10 сентября 2010, 10:36 [#1]:
Так по таймеру, OnKeyPress.
Но я бы не советовал делать подобные штуки.
|
10 сентября 2010, 11:27: Вопрос перемещён из тематического раздела Delphi » Работа с компонентами и библиотеками в раздел Delphi » Взаимодействие с Windows модератором Ерёмин А.А.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|