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

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

Как отлавить нажатие 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;


Наверх

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