Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2013, 15:50   #1
D!zel
Пользователь
 
Регистрация: 23.12.2008
Сообщений: 74
По умолчанию Мгновенная реакция на событие

Привет всем!
Интересует такой вопрос... Как можно мгновенно отреагировать на событие, но при этом главное, чтобы операция не повторялась?
То есть, к примеру, отлавливая клавиши в таймере с интервалом в 1 мс таким образом:

Код:
 if GetAsyncKeyState(...) then
  ...
Срабатывает несколько раз (из-за частоты интервала, естественно). Но нужно отреагировать на событие за 1 клик, то есть нажал пользователь кнопку (даже если не отпустил ее) - сработало событие, еще раз нажал - программа снова отреагировала на событие.

Наигрался уже с интервалом таймера... ставил и 100 мс - ситуация в принципе улучшилась, но не намного.

Может есть какая-то альтернатива всему этому? И как с этой задачей справляются хуки?
D!zel вне форума Ответить с цитированием
Старый 18.03.2013, 16:27   #2
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Может быть так?
Код:
var
  KeyOn: boolean;
...
begin
  if GetAsyncKeyState(...) and KeyOn then Exit;
  if GetAsyncKeyState(...) then
  begin
    KeyOn := true;
    ...
    Exit;
  end;
  KeyOn := false;
end;
Kix.IV вне форума Ответить с цитированием
Старый 18.03.2013, 19:27   #3
D!zel
Пользователь
 
Регистрация: 23.12.2008
Сообщений: 74
По умолчанию

Kix.IV, как вариант. Спасибо
Отзыв добавил

Хотелось бы еще узнать на счет хуков, т.к. клавиш приходится отслеживать кучу (много опций), и такой подход слишком... громоздкий, что-ли...
D!zel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MonoTorrent и мгновенная раздача coNsept C# (си шарп) 0 24.10.2012 13:59
Реакция на клавиатуру ZaramothРещьфкфя Visual C++ 8 01.09.2012 15:01
Мгновенная остановка звука xAVATARx Мультимедиа в Delphi 0 04.06.2012 01:32
У динамически созданной формы есть событие OnClick, но само событие не происходит Hunter_bog Компоненты Delphi 25 23.01.2012 23:50