Динамические меню в MS Access - затягиваем гайки |
Автор Сакович Роман | |||||||||||
30.07.2001 г. | |||||||||||
В статье "Использование динамических меню в Access" рассматривалось, как создать меню на основе панели инструментов. Пришло несколько писем с вопросами. Как скрыть системное меню? Как запретить пользователям выполнять настройку такого меню самостоятельно? Как перехватывать нажатия специальных клавиш, позволяющих отображать системное меню, окно базы данных и другие, и блокировать стандартные действия по ним или назначать свои действия.
В статье "Использование динамических меню в Access" рассматривалось, как создать меню на основе панели инструментов. Пришло несколько писем с вопросами. Как скрыть системное меню? Как запретить пользователям выполнять настройку такого меню самостоятельно? Как перехватывать нажатия специальных клавиш, позволяющих отображать системное меню, окно базы данных и другие, и блокировать стандартные действия по ним или назначать свои действия. Данный код, позволяет отключить системное меню MS Access:
Следующая строка:
Строка:
Для перехвата "горячих" клавиш необходимо создать макро, например с именем AutoKeysUser: В колонке Macro Name введите название клавиши, например {F11} - для блокировки системного Window (окна БД). В колонке Action выберите действие. Если просто нужно заблокировать нажатие клавиши, то выберите действие beep - сигнал. При нажатии пользователем на клавишу F11 прозвучит сигнал. Можно выбрать любое действие, например OpenForm и открывать форму с курсами валют. Задайте все клавиши, которые нужно заблокировать, введите действия и сохраните макрос. Одновременные нажатия клавиш вводятся так: ^{F11}- Ctrl и F11, +{F5}- Shift и F5. Что бы макрос вступил в действие, его надо запустить строкой: Application.SetOption "Key Assignment Macro", "AutoKeysUser". Таким образом можно не только блокировать некоторые клавиши, но и создавать свои "горячие клавиши". Рекомендую создать функцию:
и запускать ее в момент инициализации программы. В дополнение к этому можно запретить останавливать запуск autoexec нажатием Shift, это было описано на этом сайте. Меню на основе панели инструментов, может открывать форму, отчет, запрос, макрос. Если надо запускать определенную функцию, то создайте макрос и перечислите там все такие функции с именами (Macro Name). При настройке меню, на такие функции можно ссылаться, выбрав All Macros и с права в окне Commands, выберите этот "макрос"."имя входа".
Наверняка Вы заметили, что автор использует не русифицированный MS Access. Все выше сказанное отлично работает и на русской версии. Но наоборот - не всегда. Если Вы напишите на событии "On Click" - [Event Procedure] - это будет работать везде, но если [Процедура обработки событий] (или как там оно пишется не могу проверить) - на оригинальном MS Access выдаст сообщение об ошибке. Тоже касается и всего выше сказанного: "Can Customize Toolbars",... Можете заменять русскими аналогами, но если попадется пользователь с установленным English MS Access, Вы с удивлением обнаружите, что процентов 5 программы почему то не работает. Причем удивительна избирательность, некоторые русские свойства "переводятся" на английской версии (их большинство), а некоторые нет. Просмотров: 9788
|