Компонент Delphi HotKey (Горячие клавиши) располагается на странице Win32 Палитры компонентов. С помощью него можно определить комбинацию нажатия клавиш для выполнения заданных действий.
Свойство InvalidKeys определяет "запрещенные" клавиши - это такие клавиши нажатие на которые вместе с "горячей" клавишей не будут учитываться. Если Вас как разработчика использование клавиши ALT и обычной алфавитно-цифровой, необходимо через Инспектор объектов установить в свойстве InvalidKeys значения hcAlt равным FALSE, а остальные должны быть TRUE.
Значения свойства InvalidKeys:
- hcNone Обычные алфавитно-цифровые клавиши должны нажиматься вместе с управляющими;
- hcShift используется клавиша Shift;
- hcCtrl используется клавиша Ctrl;
- hcAlt используется клавиша Alt;
- hcShiftCtrl используются клавиши Shift + Ctrl;
- hcShiftAlt используются клавиши Shift + Alt;
- hcCtrlAlt используются клавиши Ctrl + Alt;
- hcShiftCtrlAlt используются клавиши Shift + Ctrl + Alt.
Свойство Modifiers определяет какие управляющие клавиши по умолчанию используются для назначения комбинации клавиш. По виду понятно, что речь идет о клавишах Shift, Ctrl, Alt. Значение hkExt - говорит о том что нет управляющих клавиш.
Разберем такой пример на форме расположим компоненты меню, Edit, HotKey и label. В меню сделаем один пункт - сообщение. Label будет иметь заголовок - Горячая клавиша. Компонент Edit нужен для того чтобы компонент HotKey, мог быть не в фокусе (иначе придется два раза нажимать горячие клавиши: первый раз задавать "горячие клавиши", второй выполнять команду). Обработчик события пункта меню:
procedure TForm1.N1Click(Sender: TObject); begin ShowMessage('Нажатие горячих клавиш'); end;
А события (onCreate) создания формы и onChange (изменения) компонента HotKey будут одинаковыми, они будут задавать "горячие клавиши" для пункта меню:
procedure TForm1.FormCreate(Sender: TObject); begin n1.shortCut := HotKey1.HotKey; end;
procedure TForm1.HotKey1Change(Sender: TObject); begin n1.shortCut := HotKey1.HotKey; end;
Итог: мы разобрали свойства и назначение компонента HotKey.