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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2010, 14:55   #1
Marsik
Форумчанин
 
Аватар для Marsik
 
Регистрация: 23.10.2007
Сообщений: 275
Печаль Проблема с горячими клавишами

Здравствуйте. Мне нужно задать две горячие клавиши. Тоесть чтобы при нажатии одной комбинации клавиш выполнялось тото действие, при нажатии второй комбинации другое действие. Задаю горячие клавиши таким образом:
Код:
var 
 kl,kl1,fkl1, fkl: cardinal;
keyid,keyid1: integer;
kl1:= MOD_CONTROL;
    case ComboBox3.ItemIndex of
    0:
            fkl1 := VK_F12;
    1:
      fkl1 := VK_F11;
      2:
      fkl1 := VK_F10;
      3:
      fkl1 := VK_F9;
  end;
  keyid1 := GlobalAddAtom('XPLOIT1');
  RegisterHotKey(Handle, keyid1, kl1, fkl1);
//и вторая комбинация
  kl := 0;
  case ComboBox2.ItemIndex of
    0:
            fkl := VK_F12;
    1:
      fkl := VK_F11;
      2:
      fkl := VK_F10;
      3:
      fkl := VK_F9;
  end;
  keyid := GlobalAddAtom('XPLOIT');
  RegisterHotKey(Handle, keyid, kl, fkl);
В принципе обе комбинации должны работать, однако все обстоит иначе. В вин7 работают обе комбинации, когда же тестирую на ХП работает только вторая горячая клавиша. Вроде обе комбинации создаются одинаково, но почему же тогда не работает вторая?
http://otlishnik.com/ чудесный портал для всех кто учится. Рефераты, каталоГ вузов, решебники, справочники, ЕГЭ! Welcome
Marsik вне форума Ответить с цитированием
Старый 23.02.2010, 16:34   #2
zmey31313
Форумчанин
 
Регистрация: 19.11.2009
Сообщений: 155
Сообщение

Используйте лучше MainMenu или PopupMenu.
По всем вопросам связанным с Делфи или Паскаль обращайтесь, чем смогу тем и помогу.
Помог жми на весы!!!
dmi83206389@mail.ru
zmey31313 вне форума Ответить с цитированием
Старый 23.02.2010, 19:07   #3
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Я всегда (ну или почти всегда) делаю так:
1) кидаю на форму ActionManager
2) двойной клик по нему, потом жмем New Action
3) в свойстве ShortCut указываем нужную комбинацию или выбираем из выпадающего списка ....

... ну в меню можно указать ту же комбинацию - надежнее работать будет ...
Горячие клавиши, таким образом заведенные, не страдают глобальностью и работают только при активной программе.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 23.02.2010, 20:09   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

эм... тут ведь речь идет о глобальных комбинациях... покажите-ка ваш код отлавливающий их, пощупаем под xp/
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 23.02.2010, 20:18   #5
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Прости не понял ...
Цитата:
покажите-ка ваш код отлавливающий их, пощупаем под xp
... это ко мне обращение ?

Боюсь показаться недотёпой (предыдущая ночь без сна просто) ...
Для глобальных горячих клавишь всегда использую компоненты HotKeyManager - доволен на все 100.
Безупречно работают даже в моей ERS2010.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 23.02.2010, 20:46   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...к TC обращаюсь, к TC
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 25.02.2010, 13:20   #7
Demien
Форумчанин
 
Аватар для Demien
 
Регистрация: 01.08.2007
Сообщений: 222
По умолчанию

Цитата:
Сообщение от Kotofff Посмотреть сообщение
1) кидаю на форму ActionManager
Как я понимаю данный компонент необходимо устанавливать дополнительно? В палитре не нашел... Может не там искал...
Можно по этому компоненту поподробней?
Жить тоже вредно, от этого умирают!!!
Demien вне форума Ответить с цитированием
Старый 25.02.2010, 14:06   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Demien
D2009 вкладка Additional
На остальных версиях тоже там же должно быть
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.02.2010, 14:10   #9
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Прошу прощения, что не уточнил. В моей ERS2010 этот компонент расположен на вкладке Additional.
В Delphi 6-7 он называется ActionList и расположен на вкладке Standart (хотя могу и ошибаться )
"Заряженному танку в дуло не смотрят" @Dekmer in WoT

Последний раз редактировалось Kotofff; 25.02.2010 в 14:50.
Kotofff вне форума Ответить с цитированием
Старый 25.02.2010, 14:44   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В Delphi 6-7 он называется ActionList и расположен на вкладке Standart
Дружище, в Делфи6 он называется ActionManager, и расположен все на той же Additional.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассемблер+Паскаль. КР. Работа с клавишами клавиатуры. newprog12 Фриланс 2 26.01.2010 21:25
перемещение компанента клавишами include Общие вопросы Delphi 11 13.08.2009 12:43
Проблема с горячими клавишами InsaniaF Microsoft Office Word 4 21.05.2009 11:37
Движение обьекта клавишами в с++ Grizzzli Помощь студентам 2 05.04.2009 12:43
Перемещение кнопки клавишами Wolfic Помощь студентам 15 16.10.2007 17:41