![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с 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.