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

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

Работа с HOTKEY =\ [D7, WinXP]


Crystalis ©   (2007-11-30 10:13:00) 

Трабла с хот-кеями в XP.
недавно делал проект, где задействованы хот-кеи, вот участок:

RegisterHotKey(handle,id_z,0,90);
id_z:=GlobalAddAtom('hotkey');
RegisterHotKey(handle,id_x,0,88);
id_x:=GlobalAddAtom('hotkey');
RegisterHotKey(handle,id_c,0,67);
id_c:=GlobalAddAtom('hotkey');

кстати, этот пример использование хот-кеев, нашёл гдето тут на форумах ;)
В win 2003 сервер, работало всё прекрасно, но у пользователей XP, работал тока 1 хот кей....
поставил себе тоже XP, и сам убедился.....работает только споследний обьявленый хот кей,
т.е. если, приписать RegisterHotKey(handle,id_b,0,66);, то будет только отклик на нажатие b.
Ну а вот пример обработки хоткея:

procedure TForm1.hotykey(var msg:TMessage);
begin

     if   (msg.LParamHi=90) then
  begin
  form1.Edit1.Text := form1.Edit1.Text + 'z';
  end;
   if   (msg.LParamHi=88) then
  begin
  form1.Edit1.Text := form1.Edit1.Text + 'x';
  end;
   if   (msg.LParamHi=67) then
  begin
  form1.Edit1.Text := form1.Edit1.Text + 'c';
  end;
end;

--------------------------------------------------------------
Может кто подскажет мне ошибку ?? или посоветует другой способ работы с хоткеями.
Заранее благодарен.


Crystalis   (2007-12-01 19:44:00) [1]

спасибо


Leonid Troyanovsky   (2007-12-01 14:50:00) [2]


> Crystalis   (30.11.07 10:13)  

> Может кто подскажет мне ошибку ??

Во-первых, id почему-то устанавливается до использования.
Во-вторых, три переменных не нужны, бо значение, возвращаемое
GlobalAddAtom, одно и тоже.

Ну, а в-третьих:

If the window identified by the hWnd parameter already registered a hot key with the same identifier as that specified by the id parameter, the new values for the fsModifiers and vk parameters replace the previously specified values for these parameters.

> или посоветует другой способ работы с хоткеями.

See TAction.

--
Regards, LVT.


Наверх

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