Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.17;
Скачать: CL | DM;

Вниз

Как сделать несколько Hotkey s?   Найти похожие ветки 

 
Al   (2008-07-09 22:54) [0]

Здраствуйте подскажите пожалуйста как сделать несколько 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;


 
KilkennyCat ©   (2008-07-10 01:16) [1]

Зарегестрировать столько, сколько надо.

Иными словами, повторить код в onCreate и onDestroy столько, сколько надо.
В обработке получения сообщения создать условие, чему равно Msg


 
Германн ©   (2008-07-10 01:31) [2]


> Al   (09.07.08 22:54)
>
> Здраствуйте подскажите пожалуйста как сделать несколько
> Hotkey?  Про одну все понятно, а несколько никак не получается,
>  наверное руки совсем кривые:).  
>

Кривость рук по сабжу не видно. Видна "малограмотность".
Ну прям как в 20-х годах прошлого века в России ака РСФСР. "Буквы знаю, а читать не умею".
Пора вводить новый, современный ликбез. :)


 
brother ©   (2008-07-10 05:16) [3]

> Видна "малограмотность".

но и конференция подходящая)))
жаль, что гуглить нормально уже все разучились, одни мастаки и умеют)))
зы напомнило это:
Вот как соощение о вирусе всплывает, так все сразу админа зовут с криками о помощи, а как 1 июля квип упал, так сами все прекрасно обновили. (с) Баш


 
Leonid Troyanovsky ©   (2008-07-10 09:53) [4]


> Al   (09.07.08 22:54)  

> Здраствуйте подскажите пожалуйста как сделать несколько
> Hotkey?

Одного такого вполне достаточно, чтобы юзеры тебе руки поотрывали.
См. TActionList, Action.ShortCut.

--
Regards, LVT.


 
User   (2008-07-10 09:53) [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 ...


 
KilkennyCat ©   (2008-07-10 10:59) [6]


> Leonid Troyanovsky ©   (10.07.08 09:53) [4]


Нам неизвестно, мож сознательно сие :)


 
Anatoly Podgoretsky ©   (2008-07-10 12:27) [7]

> brother  (10.07.2008 5:16:03)  [3]

Ну так, никто не знает английского, в компьютерах совсем не разбирается, с Ворд/Эксель и браузе по их словам Мы не умеем работать.


 
Al   (2008-07-11 14:00) [8]

Спасибо to User   (10.07.08 09:53) [5]
Ну и всем отписавшимся   за бурное обсуждение:)



Страницы: 1 вся ветка

Текущий архив: 2008.08.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
15-1214810458
йцукен
2008-06-30 11:20
2008.08.17
Загрузка данных из MySQL в StringGrid


1-1196691015
antonn
2007-12-03 17:10
2008.08.17
авторизация в Novell


15-1214850954
blazerad
2008-06-30 22:35
2008.08.17
Индексация базы


15-1214894072
Игорь М.
2008-07-01 10:34
2008.08.17
по клипперу вопрос (clipper5)


2-1216143935
deras
2008-07-15 21:45
2008.08.17
String to Char??