| 
| 
 | Вопрос # 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 модератором Ерёмин А.А. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |