![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать несколько Hotkey's?
Al © (2008-07-09 22:54:00)Здраствуйте подскажите пожалуйста как сделать несколько Hotkey? Про одну все понятно, а несколько никак не получается, наверное руки совсем кривые:).
private
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
...
const
MyHotKey = ord('1');
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
MessageBeep(0);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Form1.Handle, MyHotKey, 0, MyHotKey);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Form1.Handle, MyHotKey);
end;
Al (2008-07-11 14:00:00) [1]Спасибо to User (10.07.08 09:53) [5]
Ну и всем отписавшимся за бурное обсуждение:)
Anatoly Podgoretsky (2008-07-10 12:27:00) [2]> brother (10.07.2008 5:16:03) [3]
Ну так, никто не знает английского, в компьютерах совсем не разбирается, с Ворд/Эксель и браузе по их словам Мы не умеем работать.
KilkennyCat (2008-07-10 10:59:00) [3]
> Leonid Troyanovsky © (10.07.08 09:53) [4]
Нам неизвестно, мож сознательно сие :)
Leonid Troyanovsky (2008-07-10 09:53:00) [4]
> Al (09.07.08 22:54)
> Здраствуйте подскажите пожалуйста как сделать несколько
> Hotkey?
Одного такого вполне достаточно, чтобы юзеры тебе руки поотрывали.
См. TActionList, Action.ShortCut.
--
Regards, LVT.
User (2008-07-10 09:53:00) [5]
type
TForm1 = class(TForm)
...
private
id1, id2, id3, id4: integer;
procedure wmhotkey(var msg: twmhotkey); message wm_hotkey;
...
procedure TForm1.wmhotkey(var msg: twmhotkey);
begin
if msg.hotkey = id1 then ... // действие 1;
if msg.hotkey = id2 then ... // действие 2;
if msg.hotkey = id3 then ... // действие 3;
if msg.hotkey = id4 then ... // действие 4;
end;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
id1:= globaladdatom('hotkey1'); RegisterHotKey(handle, id1, mod_key_1, key1);
id2:= globaladdatom('hotkey2'); RegisterHotKey(handle, id2, mod_key_2, key2);
id3:= globaladdatom('hotkey3'); RegisterHotKey(handle, id3, mod_key_3, key3);
id4:= globaladdatom('hotkey4'); RegisterHotKey(handle, id4, mod_key_4, key4);
...
procedure TForm1.FormDestroy(Sender: TObject);
begin
unregisterhotkey(handle, id1); globaldeleteatom(id1);
unregisterhotkey(handle, id2); globaldeleteatom(id2);
unregisterhotkey(handle, id3); globaldeleteatom(id3);
unregisterhotkey(handle, id4); globaldeleteatom(id4); ...
end;
...
/CODE> - взято из какого-то FAQ ...
brother (2008-07-10 05:16:00) [6]> Видна "малограмотность".
но и конференция подходящая)))
жаль, что гуглить нормально уже все разучились, одни мастаки и умеют)))
зы напомнило это:
Вот как соощение о вирусе всплывает, так все сразу админа зовут с криками о помощи, а как 1 июля квип упал, так сами все прекрасно обновили. (с) Баш
Германн (2008-07-10 01:31:00) [7]
> Al (09.07.08 22:54)
>
> Здраствуйте подскажите пожалуйста как сделать несколько
> Hotkey? Про одну все понятно, а несколько никак не получается,
> наверное руки совсем кривые:).
>
Кривость рук по сабжу не видно. Видна "малограмотность".
Ну прям как в 20-х годах прошлого века в России ака РСФСР. "Буквы знаю, а читать не умею".
Пора вводить новый, современный ликбез. :)
KilkennyCat (2008-07-10 01:16:00) [8]Зарегестрировать столько, сколько надо.
Иными словами, повторить код в onCreate и onDestroy столько, сколько надо.
В обработке получения сообщения создать условие, чему равно Msg