Лабораторная работа Delphi. Создание меню

Тема: Создание главного и контекстного меню. Использование диспетчера действий.
Цель лабораторной работы – Познакомиться с возможностями Delphi по созданию и организации меню в приложении.
Студенты должны научиться:
 Настраивать меню
 Использовать контекстное меню
 Применять главное и контекстное меню в своих приложениях

Теоретическая часть
В Delphi имеется два компонента, представляющие меню: MainMenu — главное меню, и PopupMenu — всплывающее меню. Оба компонента расположены на странице Standard. Эти компоненты имеют много общего. Начнем рассмотрение с компонента MainMenu.
Основное свойство компонента — Items. Его заполнение производится с помощью Конструктора Меню, вызываемого двойным щелчком на компоненте MainMenu или нажатием кнопки с многоточием рядом со свойством Items в окне Инспектора Объектов. В результате откроется окно, вид которого представлен на рисунке 1. В этом окне вы можете спроектировать все меню. На рисунке 2 показано в работе то меню, которое соответствует проектируемому на рисунке 1.

1 2
При работе в конструкторе меню новые разделы можно вводить, помещая курсор в рамку из точек, обозначающую место расположения нового раздела. Если при этом раздел ввелся не на нужном вам месте, вы можете отбуксировать его мышью туда, куда вам надоЕсли вы предварительно выделите какой-то раздел меню и выберите из контекстного меню команду Insert, то рамка нового раздела вставится перед ранее выделенным. Из контекстного меню вы можете также выполнить команду Create Submenu, позволяющую ввести подменю в выделенный раздел
Свойство Caption обозначает надпись раздела. Если вы в качестве значения Caption очередного раздела введете символ минус «-», то вместо раздела в меню появится разделитель (см. на рисунках 1 и 2 разделители после разделов Сохранить как, Настройка принтера и Опции).
Свойство Name задает имя объекта, соответствующего разделу меню. Очень полезно давать этим объектам осмысленные имена, так как иначе вы скоро запутаетесь в ничего не говорящих именах типа N21. Куда понятнее имена типа MFile, MOpen, MSave и т.п.
Свойство Shortcut определяет клавиши быстрого доступа к разделу меню — «горячие» клавиши, с помощью которых пользователь, даже не заходя в меню, может в любой момент вызвать выполнение процедуры, связанной с данным разделом
Свойство Break используется в длинных меню, чтобы разбить список разделов на несколько столбцов. Возможные значение Break: mbNone — отсутствие разбиения меню (это значение принято по умолчанию), mbBarBreak и mbBreak — в меню вводится новый столбец разделов, отделенный от предыдущего полосой (mbBarBreak) или пробелами (mbBreak). На рисунке показан пример, в котором в разделе 1-3 установлено значение Break = mbBreak, а в разделе 1-5 — Break = mbBarBreak.

Довольно часто в Windows приложении при щелчке правой кнопки мыши появляется меню, его можно назвать контекстным, всплывающим или локальным. Обычно оно содержит элементы управления, влияющие на объект для которого вызвано такое меню. PopupMenu также как и MainMenu является не визуальным компонентом.
Отличительной особенностей этих двух типов меню состоит в том, что в контекстном меню все пункты располагаются в одном столбце, т.е. не может быть двух и более разделов верхнего уровня. Каждый компонент может иметь свое всплывающее меню.
Для того чтобы при щелчке правой кнопкой мыши на компоненте появилось контекстное меню, нужно его свойству PopupMenu в Инспекторе Объектов задать значение необходимого контекстного меню.

Задание 1
1. Разработать меню для будущей программы. Программа имеет вид:

По желанию, добавить в программу «Горячие клавиши» запуска.
2. Предусмотреть в программе контекстное меню, состоящее из пунктов: Копировать, Вырезать, Вставить.
3. Для наглядности, к программе применить графические обозначения, такие как иконки. Для этого на форме необходимо поместить компонент ImageList с вкладки Win32. Открыть этот компонент двойным щелчком, и добавить в него пиктограммы, нужные для вашей программы нажав кнопку Добавить или Add. После этого, связать MainMenu и ImageList. Связывание происходит в свойстве Image компонента MainMenu. Далее необходимо открыть дизайнер меню, и в нужном пункте меню, в свойстве ImageIndex выбрать соответствующую пиктограмму.
4. Сохранить проект.
Теоретический материал
Организовать действия, а также систематизировать их можно при помощи ActionList. Данный компонент находится на панели инструментов Standard.
Двойным щелчком по этому компоненту вы попадете в список действий, где можно вводить и упорядочивать действия. Можно для каждого действия установить Name – имя, и ряд свойств: Caption, ShortCut, Hint и так далее. Эти свойства могут автоматически переносится во все компоненты, ссылающиеся на это действие.
На вкладке Events для каждого действия определены 3 события:
• OnExecute – реализация действия;
• OnHint – возникает, когда на экране должен отразиться ярлычок подсказки;
• OnUpdate – события происходят между выполнениями действий.
Связь объектов действий с конкретными инициализаторами действий – управляющими элементами типа кнопок, разделов меню и т. д., осуществляется через свойство Action, имеющегося у всех управляющих элементов.
Основные свойства:
ActionCount – количество действий в списке. Только для чтения.
Actions – индексированный список действий.
Images – ссылка на список изображений – обычно на компонент ImageList.
Основные методы:
ExecuteAction – вызывается из метода Execute указанного действия Action. Генерирует событие OnExecute компонента ActionList.
UpdateAction – вызывается при обновлении списка действий.
События:
OnChange наступает, когда изменяется список действий. OnExecute наступает, когда действие генерирует событие OnExecute. OnUpdate наступает, когда изменяется действие.
Задание 2
1. Добавьте на её форму компонент ActionList с вкладки Standard, и Button.
2. Для добавления действия в наш компонент ActionList1 сделайте двойной щелчок на нем. Появится окно Editing Form1.ActionList1. Нажмите в нем на кнопку New Action:

В правом списке появится новое действие Action1:

3. Сделайте на нем двойной щелчок для перехода в окно кода. Добавьте следующие строки:
MessageDlg(‘Событие для новой кнопки’,
mtConfirmation,[mbOK],0);
Мы добавили в нашу программу некоторое действие (появление MessageBox’а). Это действие называется Action1.
4. Теперь свяжем этой действие с нашей кнопкой. Для этого у компонента Button, в свойстве Action выберите свой Action. Таким образом, мы присоединили к кнопке некоторое действие.
5. Запустить программу, и сохранить проект.
6. Самостоятельно выполнить: Создать проект подобный задание 1, но все действия будут выполнены с помощью ActionList.
Содержание отчета:
1. Номер, тема, цель лабораторной работы.
2. Задание к работе.
3. Описание входных, промежуточных и результирующих данных с указанием их типа.
4. Программа на языке программирования.
5. Результат выполнения программы (Введенное данные и полученные данные)
6. Вставить код, написанный вами
7. Вывод о проделанной работе.

Автор публикации

не в сети 2 недели

Администратор ресурса

3
Здравствуйте. Если у Вас возникают какие-либо вопросы касательно работы сайта, то вы можете написать на электронную почту admin@learn-more.kz
Комментарии: 23Публикации: 229Регистрация: 25-01-2017
Администратор ресурса

Здравствуйте. Если у Вас возникают какие-либо вопросы касательно работы сайта, то вы можете написать на электронную почту admin@learn-more.kz

Добавить комментарий