Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SrrazOffpril_Vecher.rtf
Скачиваний:
9
Добавлен:
18.09.2019
Размер:
1.9 Mб
Скачать

4.5. Модификация системы меню в период выполнения

Созданную (на этапе разработки) систему меню можно запрограммировать так, чтобы она реагировала на изменение ситуации в период выполнения. При этом можно замещать стандартную строку меню пользовательской. Если команда меню в определенном контексте не допустима, ее можно удалить, скрыть или отключить. Если элемент меню является своего рода переключателем с двумя возможными состояниями, то, когда соответствующий параметр активен, задается вывод «утопленного» значка, а когда этот параметр отключен, - «плоского». Элементы меню можно переименовывать при изменении контекста. Модификация системы меню в период выполнения осуществляется только посредством Visual Basic.

4.5.1. Отображение пользовательской строки меню

Чтобы вывести на экран пользовательскую строку меню вместо активной, следует присвоить значение True свойству Visible объекта CommandBar, представляющего пользовательскую строку меню. Строка меню, ставшая видимой, автоматически заменяет активную строку меню. По окончании работы своей программы необходимо установить свойство Visible как False, и тогда на экране вновь появится стандартная строка меню.

Всякий раз, когда пользователь запускает приложение Office, отображается стандартная строка меню. В Word стандартную строку меню можно подменять пользовательской еще при запуске – в шаблоне Normal (Обычный) он запоминает, какая строка была видима в последний раз, и в дальнейшем отображает именно ее. Но можно поступить и иначе: присваивать значение True свойству Visible нужной строки меню в процедуре обработки события Open.

4.5.2. Динамическое отображение компонентов меню

Если определенный компонент меню применим лишь к определенному документу, лучше сделать так, чтобы этот компонент появлялся, только когда активен соответствующий документ; тем самым упрощается восприятие пользователем интерфейса программы. Срок «жизни» того или иного компонента в меню можно ограничить периодом, в течении которого открыт или активен конкретный документ.

При активизации необходимого документа присваивается свойству Visible компонента меню значение True, а когда становится активным другой документ, - значение False. Аналогичным образом следует поступать и в том случае, и в том случае, если с определенным документом следует сопоставить строку меню. Таким образом, зачастую можно обойтись без добавления и удаления строк меню – достаточно простого «переключения» между ними.

Для динамического отображения компонентов меню пишется процедура обработки соответствующих событий – одни процедуры включают или делают видимыми необходимые компоненты, другие отключают или скрывают их. Если приложение не поддерживает событий, динамическая настройка пользовательского интерфейса невозможна. Единственное, что удастся сделать в таком приложении, - связать аналогичные процедуры со свойством OnAction других элементов меню или кнопок панелей инструментов. Если приложение поддерживает элементы управления на базе ActiveX, то интерфейс приложения-контейнера можно модифицировать в соответствии с событиями, поддерживаемыми конкретным элементом управления.

4.5.3. Включение и отключение компонентов меню

Если необходимо, чтобы в определенных ситуациях пользователь не мог выбирать некоторые элементы меню, следует отключать их. Для включения или отключения элемента меню предназначено свойство Enabled. Если оно равно True, элемент включен, а False – выключен. Пример:

CommandBars(“Worksheet Menu Bar”).Controls(“File”) _

.Controls.Add(“Open Database”).Enabled = False

Если необходимо отключить все команды в меню, лучше отключить само меню, и его команды станут недоступными.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]