Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Включить HotKeyManager


Автор: Михалыч 6.4.2009, 22:20
На форме 2 HotKeyManager ,в одном при нажатии на горячую клавишу выполняю код и отключаю эту клавишу что бы повторно не нажали. Отключаю так : HotKeyManager1.free;
Подскажите как програмно ее включить?

Автор: mopsa 6.4.2009, 22:46
включить уже никак только заново создавать он же уничтожен: HotKeyManager1.free
только что это за компонент интересно я таким не разу не пользовался и найти не могу Delphi 2009

Автор: Михалыч 6.4.2009, 22:53
Набери в яндексе 

Автор: kami 7.4.2009, 13:00
Цитата(Михалыч @  6.4.2009,  22:53 Найти цитируемый пост)
Набери в яндексе 

а это Вам надо или тем, кто пытается помочь?
Прямая ссылка на описание/исходник в любом случае предпочтительнее. Мне, например, яндекс ничего вразумительного не сказал, зато разрекламировал программу с одноименным названием.

По делу.
Если нет свойств/процедур типа Active|Enabled|etc... то можно заnil-ить события этого компонента, в которых производится обработка нажатия горячих клавиш. То есть что-то вроде
Код

myHotKeyManager.OnHotKeyPress(или Down):=nil;


и когда нужно включить
Код

myHotKeyManager.OnHotKeyPress(или Down):=myHotKeyManagerHotKeyPress;

Сам компонент пускай продолжает ловить горячие клавиши, все равно обработка их не ведется - жалко нам, что ли? smile
Можно завести флаг HotKey1Pressed:boolean и учитывать его при обработке.

Можно вообще жестко, как Вы и предложили - уничтожить, а при необходимости опять создать. Только при создании заново нужно не забыть прописать все необходимые свойства и события для компонента вручную.

Автор: Михалыч 7.4.2009, 13:43
kami, Спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)