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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2012, 17:39   #1
xrenomx
Пользователь
 
Аватар для xrenomx
 
Регистрация: 05.02.2011
Сообщений: 63
По умолчанию Создание горячей клавиши для отображения окна

Здравствуйте.Пытаюсь создать горячую клавишу(alt+f10)...вроде работает,но насколько я понял,она работает только в активном окне.

Что собсно мне надо сделать:при создании программы,она скрывается,тут все просто в OnCreate написано:
Код:
ShowWindow(handle,sw_hide);
ShowWindow(Application.handle,SW_hide);
Для создание горячей клавиши делаю след.В разделе private указал:

Код:
 procedure WM_HotKeyHandler (var Message: TMessage);
 message WM_HOTKEY;
Далее я описал это все след.образом(код взят с интернета):
Код:
procedure TForm1.WM_HotKeyHandler (var Message: TMessage);
  var
    idHotKey: integer; //идентификатор, но об этом - позже
    fuModifiers: word; //модификатор MOD_XX
    uVirtKey: word; //код виртуальной клавиши VK_XX
begin
  // параметры сообщения получаем так:
  idHotkey:= Message.wParam;
  fuModifiers:= LOWORD(Message.lParam);
  uVirtKey:= HIWORD(Message.lParam);
 
  //теперь - небольшая проверочка:
  if (fuModifiers = MOD_ALT) AND (uVirtKey = VK_F10) then
    ShowWindow(application.handle,SW_SHOW);
  inherited;
end;
Запускаю,программа скрывается,при нажатии Alt+F10 ничего не происходит...
Что не так?
xrenomx вне форума Ответить с цитированием
Старый 23.07.2012, 17:47   #2
volvo877
Форумчанин
 
Аватар для volvo877
 
Регистрация: 01.06.2009
Сообщений: 108
По умолчанию

Чтобы хоткей ловить, его надо сначала зарегистрировать (там же, при создании формы): RegisterHotKey
volvo877 вне форума Ответить с цитированием
Старый 23.07.2012, 19:12   #3
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Товарищ, вас в гугле забанили?

WM_HOTKEY, первая же ссылка:
Цитата:
Posted when the user presses a hot key registered by the RegisterHotKey function.
WM_HOTKEY, третья ссылка:
Цитата:
Сообщение WM_HOTKEY посылается тогда, когда пользователь нажимает комбинацию "горячая" клавиша, зарегистрированную функцией RegisterHotKey().
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 24.07.2012, 12:30   #4
xrenomx
Пользователь
 
Аватар для xrenomx
 
Регистрация: 05.02.2011
Сообщений: 63
По умолчанию

Спасибо за помощь все работает.
xrenomx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отображения окна по F1 AndreyAPG Visual C++ 2 26.04.2012 08:29
Как выйти из цикла по нажатию горячей клавиши? suslik_ Помощь студентам 2 06.07.2011 16:20
Создание приложения для отображения геометрических фигур в Delphi IceDog Помощь студентам 0 27.05.2010 19:45
Отследить нажатие клавиши для отдельного окна Черничный Win Api 12 13.09.2008 20:47
Создание системной горячей клавиши Seqular Общие вопросы Delphi 8 17.02.2007 21:12