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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2010, 23:50   #1
REDZERG
 
Регистрация: 06.01.2010
Сообщений: 8
По умолчанию Вопрос по ловушке KeyHook

Пытаюсь сделать подобие тетриса, фигурки перемещаются стрелками, для отлавливания нажатия стрелок влево/вправо использую Hook, в котором вызывается процедура сдвига.
Загвоздка в следующем: при однократном нажатии на клавишу стрелки процедура сдвига выполняется дважды, (пробовал сдвигать по нажатию кнопки на экране - все нормально, но хочется сделать управление стрелками).

Код:
Function KbdLLHookFunc(Code: Integer; wParam, lParam: Integer): LResult; stdcall;
Begin
  case PKbdLLHookStruct(lParam)^.scanCode of
  75:
    begin   //left
      moveleft;
    end;
  77:
    begin    //right
      MoveRight;
    end;
  end;
  result:=1;
  exit;
end;
REDZERG вне форума Ответить с цитированием
Старый 30.09.2010, 00:30   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а зачем такой костыль? есть события OnKey* у формы.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.09.2010, 00:42   #3
REDZERG
 
Регистрация: 06.01.2010
Сообщений: 8
По умолчанию

спс, сейчас попробую

Пепел Феникса, а можно примерчик, чет у меня не получается, просто ничего не происходит(попробовал выводить сообщения при нажатии, клике)

хм... только что попробовал в новой пустой форме, все ок работает, странно

Последний раз редактировалось Stilet; 30.09.2010 в 08:06.
REDZERG вне форума Ответить с цитированием
Старый 30.09.2010, 08:10   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Выставь для формы KeyPreview. Это позволит перенаправлять нажатия событию OnKeyDown самой формы, и у же в нем описывай что нужно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по mySQL + Вопрос по RichEdit HTL Общие вопросы Delphi 4 01.01.2010 20:22
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
вопрос по сокетам и общение как в ICQ.Сложный вопрос... Руслантус Общие вопросы C/C++ 2 12.08.2008 21:10
Вопрос Принц Общие вопросы C/C++ 1 31.05.2008 13:34
Вопрос по 1 С Aleksandr Свободное общение 0 08.06.2007 09:29