Из чего состоит меню программы

При выборе пункта меню никаких действий выполняться не будет. Как правило, используется в качестве дополнительного пояснения к меню.

При выборе пункта меню раскрывается связанное с данным пунктом ниспадающее меню.

При выборе пункта меню вызывается процедура, определенная для данного пункта меню.

Ввод команды, выполняемой при выборе пункта меню, осуществляется в поле, которое расположено правее описания типа пункта меню. При выборе типов Procedure и Submenu в окне конструктора правее описания типа пункта меню появляется кнопка Create, при нажатии на которую можно перейти в окно создания процедуры или начать создание ниспадающего меню для выбранного пункта меню.

Сохранение, генерация и запуск меню.

Для сохранения меню необходимо выполнить команду меню File | Save as. В открывшемся окне диалога «Save as» в поле Папка: требуется указать каталог, в который сохраняется файл, а в поле Save Menu ввести имя сохраняемого меню. Для сохранения служит кнопка Сохранить.

Sony Vegas Pro. Из чего состоит программа. Меню и инструменты

Кнопка Preview окна конструктора меню позволяет просмотреть внешний вид создаваемого меню, но не позволяет его активизировать. Для использования меню в приложениях его необходимо предварительно сгенерировать. Для этого служит команда Menu | Generate. При этом открывается окно диалога «Generate Menu» (рис. 3).

В поле ввода окна диалога необходимо ввести наименование файла, который будет создан в результате генерации. Используя кнопку … можно выбрать путь и имя файла в стандартном окне Windows.

Рис. 3 Окно диалога «Generate Menu»

Для запуска генерации описания служит кнопка Generate. После завершения генерации можно запустить программу меню. Для этого необходимо использовать команду меню Program | Do. В открывшемся окне диалога «Do» в случае необходимости следует выбрать каталог, содержащий файл меню, выбрать файл с расширением .MPR и нажать кнопку Do.

На экране появится созданное меню, которое заменит основное меню Visual FoxPro. Для восстановления на экране системного меню в командном окне следует ввести команду SET SYSMENU TO DEFAULT.

Определение оперативных клавиш для пунктов меню.

Выбор пункта меню осуществляется при помощи клавиш–стрелок или мыши. Дополнительно можно определить символ из имени пункта меню, активизирующий этот пункт при нажатии комбинации Alt и указанного символа, называемого оперативной клавишей.

Рис. 4 Просмотр строки меню с назначенными оперативными клавишами

Окно диалога «Prompt Options»

При перемещении по пунктам меню в конструкторе меню в столбце Option появляется кнопка Options. При нажатии на данную кнопку на экране открывается окно диалога «Prompt Options» для данного пункта меню (рис. 5).

Рис. 5 Окно диалога «Prompt Options»

В окне диалога содержится область «Shortcut», предназначенная для задания клавиш ускоренного действия. В данном окне диалога расположены также следующие поля ввода:

Основы Microsoft Word. Ворд для начинающих. часть 1

Назначение

Блокирует команду меню

Задает сообщение для пункта меню в строке состояния

Задает имя пункта меню

Задает комментарий к пункту меню

Опция Negotiate предназначена для определения места расположения заголовков меню при редактировании по месту OLE объектов.

Определение клавиш ускоренного действия.

Оперативные клавиши позволяют использовать для ускоренного выбора пункта меню только символы текста пункта меню. В Visual FoxPro существует возможность определения для каждого пункта меню клавиши ускоренного действия. В качестве такой клавиши могут использоваться символы, функциональные клавиши, а также комбинации клавиш.

При нажатии на эту клавишу активизируется связанный с ней пункт меню. Отличие между оперативными клавишами и клавишами ускоренного действия состоит в том, что с помощью клавиш ускоренного действия команда выбирается без предварительного отображения меню команд. Для назначения клавиши ускоренного действия для пункта меню следует нажать кнопку Options данного пункта меню.

На экране откроется окно диалога «Prompt Options» (рис. 5). В области «Shortcut» поле Key Label этого окна диалога содержит подсказку «press the key». Находясь в этом поле необходимо нажать клавишу или комбинацию клавиш, используемую в качестве клавиши ускоренного действия, и в поле появится метка, соответствующая нажатию клавиши. В поле ввода Key Text можно ввести краткое пояснение к определяемой клавише.

Определение сообщения для пункта меню.

Для каждого пункта меню можно определить сообщение, которое будет отображаться в строке состояния при установке курсора на этот пункт меню. Для определения сообщения используется поле ввода Message окна диалога «Prompt Options». Допускается использовать в качестве сообщения не только строку текста, но и произвольное символьное выражение. Для этого используется кнопка вызова с правой стороны поля и в окне диалога «Expression Builder» создается выражение.

Блокирование команд меню.

Иногда возникает необходимость сделать какой-либо пункт меню недоступным для пользователя. В этих случаях можно определить для пункта меню условие блокировки. Для определения условия блокировки используется поле ввода Skip For в окне диалога «Prompt Options».

Для этого следует нажать кнопку вызова конструктора выражений с правой стороны поля и в окне диалога «Expression Builder» создать выражение. При определении условия блокировки можно вводить любое допустимое логическое выражение. Например, можно использовать условие блокировки для ограничения доступа определенных пользователей к отдельным пунктам меню. Visual FoxPro делает пункт меню недоступным, когда значение выражения, заданное в условии блокировки, является истинным. Допускается использовать в условиях блокировки глобальные переменные, определенные при запуске приложения.

Читайте также:
Программа для решение ошибок

Определение имени пункта меню.

По умолчанию при генерации программы Visual FoxPro в качестве имен пунктов меню создает уникальные имена. Для повышения читабельности программы рекомендуется определить эти имена явным образом, используя поле ввода Pad Name окна диалога «Prompt Options». Для предотвращения некорректной работы программы в дальнейшем следует задавать имена пунктов меню английскими буквами, но максимально приближенными к выполняемому действию.

Определение действий для пунктов меню.

При выборе пункта меню выполняется действие, определенное для этого пункта меню. Результат выполнения действия определяется типом пункта меню:

Тип пункта меню

Раскрывает связанное с данным пунктом меню ниспадающее подменю

Выполняется процедура, которая определяется в конструкторе меню

Выполняется команда, указанная в поле, расположенном правее типа пункта меню

Для определения команды необходимо ввести в поле, расположенное правее типа пункта меню, команду Visual FoxPro, которая будет выполняться при выборе пункта меню. Наиболее часто эти команды содержат вызов экранных форм, отчетов, а также пользовательских процедур (рис. 6).

Если при выборе пункта меню выполняется некоторая последовательность команд, можно выбрать тип пункта меню Procedure и определить эти команды непосредственно в конструкторе меню. При выборе типа Procedure справа от списка типов появляется кнопка Create. При нажатии на эту кнопку на экране открывается окно редактирования процедуры.

В нем нужно определить фрагмент кода, связанный с элементом строки меню. Не следует использовать команду PROCEDURE во фрагменте кода, поскольку Visual FoxPro генерирует эту команду автоматически. Во время генерации меню Visual FoxPro создает уникальное имя для каждой процедуры и включает это имя и местонахождение процедуры в код, связанный с соответствующим элементом строки меню. После определения текста процедуры, наименование кнопки Create изменится на наименование Edit (рис. 6).

Рис. 6 Определение действий для пункта меню с открытым окном редактирования процедуры

Для создания подменю следует нажать кнопку Create выбранного пункта меню типа Submenu. На экране появится пустое окно конструктора меню, поле Menu Level которого содержит метку пункта строки меню (рис. 7). Пункты подменю определяются аналогично пунктам строки меню. Так как для редактирования основного меню и всех подменю применяется один конструктор меню, то для перехода между уровнями меню следует использовать поле Menu Level, а не закрывать окно конструктора меню.

Рис. 7 Окно диалога создания подменю

Элементы создаваемого подменю можно разделить линиями, что позволяет улучшить внешний вид меню, объединить в группы схожие по смыслу команды. Разделительная линия представляет собой пункт меню, в котором в поле ввода Prompt вводятся символы «-».

Обработка меню в проекте, созданном мастером.

При автоматическом создании проекта мастер сам делает черновой вариант главного меню. Остается только отредактировать его в соответствии с нуждами конкретной задачи. Однако следует помнить о том, что настройка и корректная обработка главного меню в приложении производится в главной программе проекта, которая также создается автоматически. Поэтому при изменении местоположения или имени главного меню придется соответствующим образом отредактировать строку в главной процедуре. Для этого во вкладке Code нужно выбрать главную процедуру, найти строку, определяющую главное меню приложения и изменить необходимые параметры. Например, по умолчанию в процедуре содержится строка:

goApp – это объект, который собственно и является самим приложением;

cStartupMenu – это свойство объекта goApp, которое определяет главное меню приложения.

Обратите внимание, что по правилам объектно-ориентированного программирования имя объекта и имя его свойства разделяются точкой. Строка «menussales» говорит о том, что в качестве главного меню используется меню, сохраненное под именем SALES в подкаталоге MENUS от текущего расположения проекта. Если меню сохранено в произвольном месте на диске, то следует указать полный путь к нему.

1. Нарисуйте на бумажном носителе структуру меню Вашего проекта. Обоснуйте эту структуру и опишите подход, применяемый Вами при построении меню.

2. Создайте меню для Вашего проекта в конструкторе меню. Отобразите в отчете тексты процедур и команды, используемые в меню.

3. Просмотрите вид меню на экране, и отметьте поведение каждого пункта меню.

4. Проверьте правильность указания главного меню приложения в главной процедуре. Отметьте команды, отвечающие за настройку главного меню приложения.

Пример выполнения работы

Источник: rfpgu.ru

Из чего состоит меню программы

Меню — это набор команд и опций, с помощью которых пользователь может получить нужные ему результаты (например, открыть окно «Дистрибьюторы компании», синхронизировать данные с сервером и т.д.). Пример меню изображен на рисунке:

Меню

В программе используются два вида меню:

Текстовое меню

Текстовое меню программы учета является стандартным для программ Microsoft Windows и содержит определенный список команд. Например, на рисунке ниже изображен пример меню «Дистрибьюторы » , предназначенного для перехода к окнам «Дистрибьюторы компании» и «Заказы», а также запуска ряда отчетов :

Текстовое меню

Рядом с некоторыми из пунктов меню находятся значки, позволяющие быстро понять назначение команды.

С помощью команды » О программе. » меню » Справка» можно вызвать форму, в которой содержатся общие сведения о программе:

o_programme.zoom80
Форма «О программе. «

Команда » Регистрация» меню «Справка» открывает форму, в которой подробно описано, как зарегистрировать данную программу.

Команда » Выход» текстового меню позволяет выйти из программы.

Читайте также:
Прекращена работа программы professional farmer cattle and crops

Для быстрой навигации по меню можно использовать клавиши доступа (при этом должен быть выбран русский язык ввода).

Пиктографическое меню

Пиктографическое меню состоит из набора пиктограмм, представляющих собой условные обозначения основных окон программы:

Пиктографическое меню

Каждая пиктограмма — это отдельная кнопка, имеющая различное назначение. Для открытия необходимого окна достаточно нажать на нужную кнопку. Например, кнопка «Дистрибьюторы» предназначена для вызова окна дистрибьюторов, а кнопка «Заказы» для открытия окна заказов.

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

Источник: flawlessmlm.com

Запись была обновлена

MainMenu, расположенный на странице Standard, это не визуальный компонент, т.е. место его размещения на форме в процессе проектирования не имеет никакого значения для пользователя — он все равно увидит не сам компонент, а только меню, сгенерированное им.

Обычно на форму помещается один компонент MainMenu. В этом случае его имя автоматически заносится в свойство формы Menu. Но можно поместить на форму и несколько компонентов MainMenu с разными наборами разделов, соответствующими различным режимам работы приложения. В этом случае во время проектирования свойству Menu формы присваивается ссылка на один из этих компонентов. А в процессе выполнения в нужные моменты это свойство можно изменять, меняя соответственно состав главного меню приложения.

Основное свойство компонента Items. Его заполнение производится с помощью Конструктора Меню, вызываемого двойным щелчком на компоненте MainMenu или нажатием кнопки с многоточием рядом со свойством Items в окне Инспектора Объектов. В результате откроется окно. В этом окне можно спроектировать меню.

При работе в конструкторе меню новые разделы можно вводить, помещая курсор в рамку из точек, обозначающую место расположения нового раздела. Если при этом раздел ввелся не на нужном вам месте, можно отбуксировать его мышью туда, куда вам надо. Другой путь ввода нового раздела — использование контекстного меню, всплывающего при щелчке правой кнопкой мыши.

Если предварительно выделить какой-то раздел меню и выбрать из контекстного меню команду Insert, то рамка нового раздела вставится перед ранее выделенным. Из контекстного меню можно также выполнить команду Create Submenu, позволяющую ввести подменю в выделенный раздел. При выборе нового раздела можно увидеть в Инспекторе Объектов множество свойств данного раздела. Дело в том, что каждый раздел меню, т.е. каждый элемент свойства Items, является объектом типа TMenuItem, обладающим своими свойствами, методами, событиями.

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

Свойство Name задает имя объекта, соответствующего разделу меню. Очень полезно давать этим объектам осмысленные имена, так как иначе вскоре можно запутаться в ничего не говорящих именах типа N21. Куда понятнее имена типа MFile, MOpen, MSave и т.п.

Свойство Shortcut определяет клавиши быстрого доступа к разделу меню — «горячие» клавиши, с помощью которых пользователь, даже не заходя в меню, может в любой момент вызвать выполнение процедуры, связанной с данным разделом. Чтобы определить клавиши быстрого доступа, надо открыть выпадающий список свойства Shortcut в окне Инспектора Объектов и выбрать из него нужную комбинацию клавиш. Эта комбинация появится в строке раздела меню.

Свойство Default определяет, является ли данный раздел разделом по умолчанию своего подменю, т.е. разделом, выполняемым при двойном щелчке пользователя на родительском разделе. Подменю может содержать только один раздел по умолчанию, выделяемый жирным шрифтом.
Свойство Break используется в длинных меню, чтобы разбить список разделов на несколько столбцов. Возможные значение Break: mbNone — отсутствие разбиения меню (это значение принято по умолчанию), mbBarBreak и mbBreak — в меню вводится новый столбец разделов, отделенный от предыдущего полосой (mbBarBreak) или пробелами (mbBreak).

Свойство Checked, установленное в true, указывает, что в разделе меню будет отображаться маркер флажка, показывающий, что данный раздел выбран. В C++Builder 6 для разделов меню введено новое свойство — AutoCheck. Если его установить в true, то при каждом выборе пользователем данного раздела маркер будет автоматически переключаться, указывая то на выбранное состояние, то на отсутствие выбора. В предшествующих версиях C++Builder маркер сам по себе не переключается и в обработчик события OnClick раздела надо вставлять оператор типа (в приведенном операторе подразумевается, что раздел меню назван MAutoSave):

MAutoSave->Checked =! MAutoSave->Checked;

Еще одним свойством, позволяющим вводить маркеры в разделы меню, является Radioltem. Это свойство, установленное в true, определяет, что данный раздел должен работать в режиме радиокнопки совместно с другими разделами, имеющими то же значение свойства Grouplndex. По умолчанию значение GroupIndex равно 0. Но можно задать его больше нуля и тогда, если имеется несколько разделов с одинаковым значением Grouplndex и с Radioltem = true, то в них могут появляться маркеры флажков, причем только в одном из них. Если задать программно в одном из этих разделов Checked = true, то в остальных разделах Checked автоматически сбросится в false.

Читайте также:
Программа репост не работает

Для подобных групп разделов, работающих как радиокнопки, можно установить в true свойство AutoCheck. Тогда при щелчке пользователя на невыбранном разделе все будет работать нормально: этот раздел включится, а ранее включенный выключится. Но если пользователь щелкнет на выбранном разделе, то он выключится и окажется, что все разделы данной группы выключены. Если по смыслу это допустимое состояние, то все хорошо. Но если в любом случае один из разделов должен быть включен, то надо отказаться от использования свойства AutoCheck (установить его в false) и переключать свойство Checked разделов программно. Например, в обработчики щелчков этих разделов можно ввести оператор:

if(!((TMenuItem *)Sender)->Checked) ((TMenuItem *)Sender)->Checked = true;

Он переключает маркер только в случае, если сделан щелчок на не выбранном разделе меню. Оператор записан в общем виде и в качестве источника события может фигурировать любой раздел меню.

Описанные маркеры флажков в режиме радиокнопок и в обычном режиме используются для разделов меню, представляющих собой различные опции, взаимоисключающие или совместимые. Для каждого раздела могут быть установлены во время проектирования или программно во время выполнения свойства Enabled (доступен) и Visible (видимый). Если установить Enabled = false, то раздел будет изображаться серой надписью и не будет реагировать на щелчок пользователя. Если же задать Visible = false, то раздел вообще не будет виден, а остальные разделы сомкнутся, заняв место невидимого. Свойства Enabled и Visible используются для того, чтобы изменять состав доступных пользователю разделов в зависимости от режима работы приложения.

В C++ Builder предусмотрена возможность ввода в разделы меню изображений. За это ответственны свойства разделов Bitmap и ImageIndex. Bitmap позволяет непосредственно ввести изображение в раздел, выбрав его из указанного вами файла. ImageIndex позволяет указать индекс изображения, хранящегося во внешнем компоненте ImageList.

Указание на этот компонент можно задать в свойстве Images компонента MainMenu. Индексы начинаются с 0. Если указать индекс -1 (значение по умолчанию), изображения не будет.

Основное событие раздела — OnClick, возникающее при щелчке пользователя на разделе или при нажатии «горячих» клавиш быстрого доступа.
Еще одно очень важное свойство — Action. Сославшись на ранее описанное действие, можно избавиться от необходимости задавать большинство из указанных выше свойств, так как они наследуются от объекта действия. Вам не требуется также писать обработчик события OnClick, так как оно наследуется от действия.

Рассмотрим теперь вопросы объединения главных меню вторичных форм с меню главной формы. Речь идет о приложениях с несколькими формами, в которых и главная, и вспомогательные формы имеют свои главные меню компоненты MainMenu. Конечно, пользователю неудобно работать одновременно с несколькими окнами, каждое из которых имеет свое меню. Обычно надо, чтобы эти меню сливались в одно меню главной формы.

Приложения с несколькими формами могут быть двух видов: приложения с интерфейсом множества документов так называемые MDI приложения, и обычные приложения с главной и вспомогательными формами. Типичными примерами приложений MDI являются программы Word и Excel. В MDI приложениях меню дочерних форм всегда объединяются с меню родительской формы.

А в приложениях с несколькими формами наличие или отсутствие объединение определяется свойством AutoMerge компонентов TMainMenu. Если требуется, чтобы меню вторичных форм объединялись с меню главной формы, то в каждой такой вторичной форме надо установить AutoMerge в true. При этом свойство AutoMerge главной формы должно оставаться в false.

Способ объединения меню определяется свойством разделов Grouplndex. По умолчанию все разделы меню имеют одинаковое значение Grouplndex, равное нулю. Если требуется объединение меню, то разделам надо задать неубывающие номера свойств Grouplndex.

Тогда, если разделы встраиваемого меню имеют те же значения Grouplndex, что и какие-то разделы меню основной формы, то эти разделы заменяют соответствующие разделы основного меню. В противном случае разделы вспомогательного меню встраиваются между элементами основного меню в соответствии с номерами Grouplndex. Если встраиваемый раздел имеет GroupIndex меньший, чем любой из разделов основного меню, то разделы встраиваются в начало.

Если в меню имеются разделы, работающие как радиокнопки, то нельзя забывать, что их взаимодействие также определяется свойствами Grouplndex. Связанные с меню в приложениях MDI, пользователь может открывать столько окон документов, сколько ему требуется. Обычно в подобных приложениях имеется меню Окно, которое содержит такие разделы, как Упорядочить. В конце меню идет обычно список открытых окон документов, в который заносятся названия открытых пользователем окон. Выбирая в этом списке, пользователь может переключаться между окнами документов.

Для включения в меню раздела списка открытых окон, надо в свойстве WindowMenu главной формы приложения MDI указать имя меню, в конец которого должен помещаться список. Указывается именно имя меню, а не разделов выпадающего списка.

Один из требований является стандартизация меню и их разделов. Этому помогает команда Save As Template в контекстном меню, всплывающем при щелчке правой кнопкой мыши в окне Конструктора Меню. Эта команда вызывает диалог. В этом диалоге можно в верхнем окне указать описание (заголовок), под которым нужно сохранить меню. Впоследствии в любом новом приложении можно загрузить этот шаблон в меню, выбирая из всплывающего меню в окне Конструктора Меню команду Insert From Template.

Источник: cubook.pro

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru