Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2013, 17:14   #1
volverine
 
Регистрация: 01.07.2013
Сообщений: 5
По умолчанию Отловить нажатие клавиши

Всем привет, я ещё школьник, пишу свои первые программы, возник вопрос, подскажите как отловить нажатие какой-либо клавиши на пример f5, если форма не активна?
volverine вне форума Ответить с цитированием
Старый 01.07.2013, 17:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ставить хук, или регистрировать горячую клавишу.
http://delphiworld.narod.ru/base/sys_hotkey.html
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.07.2013, 22:40   #3
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Код:
Uses ShellApi;

procedure Keys(Msg: TWMKeyDown); message WM_KeyDown;

//процедура
begin
if Msg.CharCode=VK_F5 then 
begin
//делаешь, то что хочешь
end;
end;
событие onKeyDown не используй, так как оно срабатывает, когда фокус мыши установлен на хендл формы(тоесть форма активна).
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.

Последний раз редактировалось Stilet; 01.07.2013 в 22:59.
саша40 вне форума Ответить с цитированием
Старый 01.07.2013, 23:00   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А ты думаешь что message WM_KeyDown отработает по другому? )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.07.2013, 23:36   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Регистрируешь своё оконное сообщение MY_SUPERMESSAGE
Регистрируешь горячую клавишу для окна X c идентификатором MY_SUPERMESSAGE и нужными модификаторами
Пишешь перехватчик сообщения MY_SUPERMESSAGE:
Код:
procedure LOL4TO(var Msg:TMessage); message MY_SUPERMESSAGE;
begin
 if Msg.Message = MY_SUPERMESSAGE then
 //OLOLO
end;
Человек_Борща вне форума Ответить с цитированием
Старый 02.07.2013, 01:58   #6
volverine
 
Регистрация: 01.07.2013
Сообщений: 5
По умолчанию

всем спасибо)
volverine вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отловить нажатие клавиши ctrl kaljan775 Общие вопросы C/C++ 4 31.10.2011 23:39
отловить нажатие клавиши ctrl kaljan775 Помощь студентам 0 30.10.2011 17:20
Долгое нажатие клавиши в KeyDown как одно нажатие marina15056 Общие вопросы Delphi 7 16.08.2009 00:22
отловить нажатие клавиши в ячейке (до нажатия enter) loginrl103 Microsoft Office Excel 3 07.08.2009 15:10
Отловить нажатие кнопок Sanek_ntsk Паскаль, Turbo Pascal, PascalABC.NET 2 12.03.2008 17:38