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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2014, 14:55   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос Отловить нажатие кнопки на форме

Доброго времени суток! Пытаюсь отловить нажатие кнопки тильда при активной форме. Если форма пустая (нет ни одного контрола), то
Код:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #96 then ShowMessage('Тьльда');
end;
работает нормально. Если на форме есть контролы, то данное событие уже не работает. Смотрел в сторону SetWindowsHookEx, но так и не смог сделать задуманное.
Код:
unit Unit1;

...

var
  Form1: TForm1;
  HookHandle: hHook = 0;

implementation

{$R *.dfm}

procedure MyKeyHook(Code: Integer; wParam: LongWord; lParam: LongWord); // Чего-то тут не хватает или вообще неверно написано
begin
  if Code < 0 then
  begin
    CallNextHookEx(HookHandle, Code, wParam, lParam);
    Exit;
  end;

  if (Code = HC_ACTION) and (wParam = 192) and ((LOWORD(lParam) and KF_UP) <> 0) then SHOWMESSAGE('Нажата клавиша Тильда');
  CallNextHookEx(HookHandle, Code, wParam, lParam);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  HookHandle := SetWindowsHookEx(WH_KEYBOARD, @MyKeyHook, HInstance, 0);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  UnhookWindowsHookEx(HookHandle);
end;
Изображения
Тип файла: png pic.png (13.0 Кб, 122 просмотров)
Shouldercannon вне форума Ответить с цитированием
Старый 05.10.2014, 15:10   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

а вот так пробовал?
Изображения
Тип файла: png 1.png (8.3 Кб, 124 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 05.10.2014, 16:06   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
а вот так пробовал?
Работает..
Shouldercannon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как отловить нажатие кнопки на сообщении? kate158 Общие вопросы Delphi 9 25.09.2012 17:08
C# Отловить нажатие кнопки в другом приложении drayvhard C# (си шарп) 2 13.07.2012 13:30
Как отследить нажатие кнопки даже если нет фокуса на форме gufon Общие вопросы Delphi 1 01.06.2011 15:29
нажатие кнопки "X" на форме strannik Общие вопросы Delphi 6 09.05.2011 02:42
Отловить нажатие левой кнопки мыши на р листе SAndrus Microsoft Office Excel 2 14.07.2007 13:13