|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.07.2010, 12:39 | #1 |
Форумчанин
Регистрация: 25.09.2008
Сообщений: 209
|
Перехват клавиш
Здравствуйте. Возникла следующая проблема.
Есть форма. На неё кладу TactionManager. Создаю новый TAction, и назначаю ему клавишу быстрого запуска ShortCut. При работе с этой формой всё нормально. Вызываю вторую форму, которая обрабатывает кнопки по-своему!. Если её вызвать по ShowModal - всё ОК, а если по Show - то кнопка быстрого запуска Action срабатывает, как вызов этого Action! И никак это событие не перехватить. Понимаю, что вроде как это так и должно быть. Но что можно сделать? На ум приходит один вариант - отказаться от ShortCut у Action и вызывать это действие самому, в обработчике OnKeyDown, формы. Однако тогда пропадёт и подсказка, о горячих клавишах, в выпадающем меню (в оригинальной программе у меня это действие и в меню есть). Тестовый проект прилагаю. |
22.07.2010, 13:34 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Если мне не изменяет чутье ActionManager1.State:=asSuspended; отключает реакцию на Action'ы
I'm learning to live...
|
22.07.2010, 21:26 | #3 |
Форумчанин
Регистрация: 16.08.2008
Сообщений: 276
|
Как вариант можно прописать в родительской форме, в обработчике для action, case и в нем уже прописать нужные действия (вплоть до вызова нужной функции на дочерней форме). Способ идиотский, но он работает...
Искусственный интеллект - фигня по сравнению с естественной глупостью
|
23.07.2010, 06:24 | #4 | ||
Форумчанин
Регистрация: 25.09.2008
Сообщений: 209
|
Цитата:
Прописал эту строку на OnActivate дочерней, а в OnActivate главной возвращаю обратно, ActionManager1.State:=asNormal извращение, конечно, но работает! Цитата:
UPD Нашёл ещё вариант - на вторую форму тоже положить ActionManager, обработчик клавиш формы не трогать, а все нужные действия прописывать в нём, определяя соответствующие действия и раздавая им ShortCut Последний раз редактировалось AnTe; 23.07.2010 в 06:35. |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перехват нажатых клавиш | sxem | Общие вопросы Delphi | 7 | 02.05.2010 23:31 |
перехват нажатия клавиш | skalt12 | Общие вопросы Delphi | 4 | 17.08.2009 13:06 |
Перехват нажатия клавиш. | Vi_russ | Общие вопросы Delphi | 1 | 02.12.2008 20:25 |
Перехват нажатых клавиш | AidarBik | Общие вопросы Delphi | 2 | 21.06.2007 20:11 |