Hare.ru @ Коллективный разум / Hare.ru @ Дикое место |
Архив hare.ru | |||
Мысли, конвертированные в текст | ||||
Собственные руки TMСобственные горячие клавиши в формах V7.Alexey Kusiy (где-то в 2001) Известно, что на кнопки в экранных формах V7 можно «вешать» горячие клавиши. Однако количество оных оставляет желать лучшего это только Fx с различными модификаторами (alt, ctrl, shift), при чём наиболее привлекательные сочетания (например, F1) уже зарезервированы системой.Но всё-таки существует есть способ привязать к кнопкам и иные сочетания клавиш о нем я и расскажу. Однако этот способ не относится к стандартным и документированным, поскольку требует непосредственной (минуя конфигуратор) модифиикации форм. Инструментарий. Нам потребуется: файловый менеджер FAR, plug-in к нему по имени DocFileBrowser, справочник по кодам клавиш (в смысле, которые Virtual Keys, VK_), и любой HEX-редактор (можно использовать соответствующую функцию FAR'a). Сам процесс. Допустим, у нас есть некий внешний отчёт, на какую-то из кнопок которого мы хотим повесить "хоткей", отличный от стандартного. Открываем в FAR'e этот отчет через DocFileBrowser и видим, что он в себе набор stream'ов (которые можно запросто называть файлами, суть одна и та же):
Container.Profile Dialog Stream Inplace description Main MetaData Stream MD Programm text
Какой файл к чему относится я описывать не буду, про это и так неоднократно уже
говорилось, тем более, что имена файлов более чем прозрачны. Да вы и сами все
знаете Так вот, нам нужен Dialog Stream. Распакуйте его куда-нибудь (простая операция Copy в FAR'e). Теперь посмотрим, что он из себя представляет это почти что обычный текстовый файл, за исключением первых трёх байт там может быть все, что угодно (на самом деле, там длина файла). Файл состоит из строчек типа:
На самом деле это всё одна строка, просто она разбита разбита для удобства чтения. Так вот, последние {""0"",""0""} есть ни что иное, как модификатор (первое числовое поле) и Vkey_code назначенной кнопке горячей клавиши. Причём оба числа десятичные. Модификатор означает:
3 есть;
+8 Ctrl +16 Alt например, для Alt+Shift+Key модификатор будет 23.
Теперь, зная VK_ нужной нам клавиши (например, Однако его длина изменилась поэтому открываем файл каким-нибудь HEX-редактором, и правим: первый байт всегда FF, второй и третий длина оставшегося куска файла (без учета этих трёх байт). Как вычислить эту длину? Становимся на последний байт файла допустим, это адрес 05ECH. Поскольку адресация идет с нуля, то всего в файле 05EDH байт. Вычитаем три (первых) получаем 05EAH. Это число и ставим во второй и третий байты заголовка (естественно, младший байт идет первым EA 05). Далее cохраняем, запаковываем Dialog Stream на место, закрываем файл (DocFileBrowser открывает файлы монопольно, 1С одновременно с ним тот же файл открыть не сможет). Теперь открываем отчет в 1С, и наслаждаемся произведённым эффектом. Напоследок хочу предупредить редактирование свойств «пропатченной» кнопки в конфигураторе приводит к потере установленного хоткея, это вполне закономерно и ничего тут не поделать. Будьте внимательны. К сему описанию прилагается демонстрационный пример с тремя хоткеями Ctrl+D, Alt+D и просто D. При чем все они (D в том числе) действуют даже тогда, когда фокус находится в поле ввода. Самое последнее: при вызове хоткея активный элемент не теряет фокуса! |
Партнеры: Также может быть интересно: Канал Россия 1 на http://spbtvonline.ru/ |
|||
Сайт поддерживается за счет партнеров: | ||||
:::... Сайт содержит архив двух версий hare.ru | Карта сайта |