Показать сообщение отдельно
Старый 24.01.2006, 22:16   #2  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Есть варианты. На удобство использования не претендую. Но на безрыбье и рак рыба.

В любом случае решение требует наличия/добавления кнопок (можно невидимых).

Идея сворована в модуле Shop floor control.


1. Без кодирования (но с редактированием меток).

Аксапта автоматически назначает горячие клавиши для кнопок (и только для кнопок в формах) по хитрому алгориму: берет первую букву текста в метке и назначает нажатие комбинации [Alt] + <символ в метке>. Символ в кнопке при этом подчеркивается.

Но есть казус следующего плана. Данное утверждение работает только в случае, если метка написана латинскими символами. Казалось бы, если в метке использовать латинский символ (например, [а) Проводки], [b) Сделать все автоматически]), то с горем пополам проблему можно решить.

Но и тут есть проблема. Если при открытии формы включена русская раскладка, то назначения комбинацй клавиш не произойдет.

Решением может быть использование цифр. Например, [1) Проводки], [2) Сделать все автоматически]. Тогда при нажатии [Alt] + [1] будет "нажиматься" кнопка просмотра проводок...

К сожалению, цифр не много у нас. Но это уже хоть что-то.


2. С кодированием (расширение варианта 1).

В том же Shop floor control можно наблюдать следующий фокус. В АОТе создается кнопочка с неким текстом в свойствах. Например, "1".

Дальше в init() формы ей приделывается совсем другой текст. Например, "Проводки". После того, как открывается форма, она продолжает жрать [Alt] + [1], хотя текст на кнопке красивый.


3. Изящный (относительно много кодирования)

В том же Shop floor control можно наблюдать, как перекрываются функциональные клавиши [F1] .. [F9]. Производится это с помощью .dll-ки. Как это делается я разбираться не стал. Многовато кодирования получается. Кому интересно, сам сможет посмотреть.

Хотя, если припрет, то почему бы и нет.

Правда, перехват радикально начинает работать. Даже в дебагере функциональные клавиши вырубаются.


PS. Это я сам себе написал :-) Когда в следующий раз буду на форуме искать — чтобы смог вспомнить. А то я уже не первый раз ветку читаю.
__________________
С уважением,
glibs®
За это сообщение автора поблагодарили: mazzy (18), Garic (1), ALEG (1), Logger (5), Leshiy_T (1), IvanS (1).