![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отлавить нажатие F1?? [D5, D7, Win95/98, WinXP]
Monak © (2003-10-30 21:22:00)
Я пишу::::
procedure KeyF1(var message:TWMKEYDOWN); message WM_KEYDOWN;
var
key:byte;
begin
asm
mov al, 60h
mov Key, al
end;
showmessage(inttostr(key));
end;
Он постоянно выдаёт вне зависимости от клавиши "96", где я ошибся???
Геннадий (2003-11-06 16:58:00) [1]
> einsam (02.11.03 22:00) [6]
> А еще для формы желательно установить в True свойство KeyPressed.
Имеется в виду KeyPreview = True? (извиняюсь, если неправильно набрал)
einsam (2003-11-02 22:00:00) [2]
А еще для формы желательно установить в True свойство KeyPressed.
Дубинин Алексей (2003-11-02 18:21:00) [3]
> При написания обработчика события на OnKeyPress, ничего
> не получится, т.к. это событие возникает только при нажатии
> на обычные клавиши, но не на управляющие. А для проверки
> нажатия F1 надо использовать событие OnKeyDown, и уже в
> нём сравнивать Key с VK_F1.
Согласен, просто не то указал, извиняюсь за ошибку и введение в заблуждение.
Semyon (2003-11-02 11:28:00) [4]
При написания обработчика события на OnKeyPress, ничего не получится, т.к. это событие возникает только при нажатии на обычные клавиши, но не на управляющие. А для проверки нажатия F1 надо использовать событие OnKeyDown, и уже в нём сравнивать Key с VK_F1.
Дубинин Алексей (2003-11-01 21:45:00) [5]
Во время запуска своего приложения можно зарегистрировать эту клавишу через RegisterHotKey и отлавливать сообщение WM_HOTKEY.
Или можно установить глобальную ловушку и в ней отлавливать все что душа пожелает.
Или, самое простое: есть в дельфинской форме events OnKeyPress,
в этой процедуре определяешь переменную Key и сравниваешь ее с виртуальной клавишей VK_F1.
Просьба написать мне на почту, если что то помогло и что именно.
xia (2003-10-30 22:13:00) [6]
я в шоке...
тело процедуры = showmessage("60")...
попробуй так:
procedure tform1.KeyF1(var message:TWMKEYDOWN);
var
key:byte;
ii:integer;
begin
if message.CharCode=112 then
showmessage(inttostr(message.CharCode));
end;
xia (2003-10-30 22:13:00) [7]
я в шоке...
тело процедуры = showmessage("60")...
попробуй так:
procedure tform1.KeyF1(var message:TWMKEYDOWN);
begin
if message.CharCode=112 then
showmessage(inttostr(message.CharCode));
end;