@DeeUs

Как реализовать сочетания клавиш только в активной форме?

Здравствуйте!
Как сделать сочетания клавиш в программе, но так, чтобы они работали только когда форма активна?(программа по умолчанию запускается в трее).
Я добавил комбинацию ctrl+z через RegisterHotKey, но есть проблема - когда программа запущена ctrl+z не работает в других программах.
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
HemulGM
@HemulGM Куратор тега Delphi
Delphi Developer, сис. админ
Не нужно такие сочетания "ctrl+z" регистрировать в системе.
Чтоб форма обрабатывала сочетания, используй простое событие OnKeyUp (или если нужно OnKeyDown). Чтоб сочетание обрабатывала в первую очередь форма, а не контрол в фокусе, то у формы установи свойство KeyPreview = True

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
begin
  if [ssCtrl] = Shift then
    case Key of
      vkZ: //Ctrl+Z pressed
        ;
    end;
end;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы