HotKey

  

Компонент delphi HotKey является вспомогательным, обеспечивающий возможность задания самим пользователем горячих клавиш, определяющих быстрый доступ к разделам меню. К тому же этот компонент позволяет задать такие сочетания горячих клавиш, которые не предусмотрены в выпадающем списке свойств разделов меню ShortCut.

Компонент HotKey внешне выглядит как обычное окно редактора edit. Но если в него входит пользователь, то оно переводит нажимаемые пользователем клавиши в тип TShortCut, хранящий комбинацию горячих клавиш. Например если пользователь нажимает клавиши Ctrl + S, то в окне HotKey появится текст «Ctrl + S». По умолчанию комбинация клавиш равна «Alt + а».

Свойство HotKey содержит в себе эту комбинацию, для примера присвоим разделу меню с именем «Open» эти горячие клавиши Open.ShortCut:=hotkey1.HotKey;

Modifiers указывает модификатор – вспомогательную клавишу, нажимаемую перед символом.

InvalidKeys задает недопустимые клавиши или их комбинации(Shift, Ctrl, Alt, Shift+Ctrl, Shift+Alt, Ctrl+Alt, Shift+Ctrl+Alt).

Приведем пример использования этого компонента.

Пусть у вас есть главная форма приложения, содержащая компонент MainMenu и пусть вы хотите в весть команду настройки горячих клавиш, позволяющие пользователю изменять установленные для разделов горячие клавиши.
Начните свое приложение, разместив на нем компонент MainMenu и задайте меню.
Добавьте в приложение одну форму(File – New Form) эта форма будет вспомогательной. В обработчике команды настройка главной формы вставьте оператор
procedure TForm2.N7Click(Sender: TObject);
begin
form15.ShowModal;
end;
Этот оператор позволит открыть окно с настройками как модальное т.е. пользователь не сможет вернутся на главную форму пока не закроет окно с настройками. Теперь спроектируем форму с настройками, для этого нам понадобится 2 компонента ListBox, HotKey и Button. Разместим их так как показана на рисунке ниже.

Теперь напишем, обработчик событий, который будет загружать списки ListBox1 и ListBox2 с названиями разделов и при выборе пользователем быстрых клавиш фиксировал бы этот выбор в соответствующем разделе меню.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
procedure TForm15.Button1Click(Sender: TObject);
begin
Form14.MainMenu1.Items.Items[ListBox1.ItemIndex].Items[ListBox2.ItemIndex].ShortCut:= HotKey1.HotKey;
Close();

form14.MainMenu1.Items.Items[listbox2.ItemIndex].ShortCut:=hotkey1.HotKey;
end;

procedure TForm15.FormShow(Sender: TObject);
var
i: integer;
begin
ListBox1.Clear();
for i := 0 to Form14.MainMenu1.Items.Count-1 do
ListBox1.Items.Add(
Form14.MainMenu1.Items.Items[i].Caption);
ListBox1.ItemIndex := 0;
ListBox1Click(Sender);
end;

procedure TForm15.ListBox1Click(Sender: TObject);
vaR
i:integer;
begin
ListBox2.Clear();
for i := 0 to Form14.MainMenu1.Items.items[ListBox1.ItemIndex].Count-1 do
ListBox2.Items.Add(Form14.MainMenu1.Items.Items[
ListBox1.ItemIndex].Items[i].Caption);
ListBox2.ItemIndex := 0;

ListBox2Click(Sender);
end;

procedure TForm15.ListBox2Click(Sender: TObject);
begin
HotKey1.HotKey := Form14.MainMenu1.Items.Items[
ListBox1.ItemIndex].Items[
ListBox2.ItemIndex].ShortCut;
end;

end.

Продолжаем изучать Delphi

XPManifest Компонент delphi XPManifest служит для того чтобы оформление вашей программы было такое же как и ост...
ComboBoxEx Компонент delphi ComboBoxEx (рис 1)  во многом подобен компоненту ComboBox. Различие, заключается в ...
PageScroller Компонент delphi PageScroller служит для прокручивания какой-либо панели вместе с размещенными на не...
CoolBar Компонент Delphi CoolBar представляет собой ToolBar. CoolBar это компонент-контейнер управления, как...