Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выбор "горичих" клавиш [D7, WinXP]


kyn66 ©   (2007-03-12 12:24:00) 

В некоторых программах для некоторых операций предлагаетя выбрать ряд горячих клавиш для обеспечения определенных действий. Подскажите, каким образом это делается. Точнее как выглядит этот механизм от предложения комбинаций до воплощения их в своем коде. Где и ак должны эти комбинации храниться. Спасибо.


MsGuns   (2007-03-13 21:36:00) [1]

Используйте TAction, которым можно назначать "горячие" клавиши и в рантайме.


kyn66   (2007-03-13 09:13:00) [2]

Вот вот справку то смотрел, однако там есть примры с заранее указанными комбинациями и нигде нет, как использовать комбинацию типа TShortCut. А в указанном здесь примере присвоение пункту  меню не совсем удачное предложение.


Думкин   (2007-03-13 06:25:00) [3]

А справку посмотреть?

To use this example, create a form with a main menu component and a HotKey component.  At design time, use the Menu designer to add menu items, including a "File" menu with subitems that includes a "New" menu item.  Add the following code to the OnCreate method of the form and the OnClick event of the File menu item.

procedure TForm1.File1Click(Sender: TObject);

begin
 // Assign hotkey to the menu's File "New" item.
 New1.ShortCut := HotKey1.HotKey;  
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 // Default to "Ctrl + A"
 HotKey1.Modifiers := [hkCtrl];
 // Don't allow shift or alt
 HotKey1.InvalidKeys := [hcShift, hcAlt];
end;


kyn66   (2007-03-12 14:40:00) [4]

Наполовину разобрался. Вот только как его теперь применить в форме?
Сразу делел так

procedure TGenTFrm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
 if ((Shift = [ssCtrl, ssShift]) and (Key = 67)) then
  begin
   ...мой код...
  end;
end;


А как теперь, имея код типа TShortCut его использовать?


kyn66   (2007-03-12 14:27:00) [5]

Ага, возможно это подойдет.


Думкин   (2007-03-12 12:41:00) [6]

THotKey?


kyn66   (2007-03-12 12:30:00) [7]

Не совсем то. Необходимо юзеру предложить на выбор создать свою комбинацию, а затем ее использовать в программе.


Думкин   (2007-03-12 12:25:00) [8]

TActionList, TAction


Наверх

Титульная страница Поиск, карта сайта Написать письмо