Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_7_ Меню и диалоги.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
200.7 Кб
Скачать

Рыбалка С.А., Шкатова Г.И., C++Builder

Министерство образования Российской Федерации

ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

УТВЕРЖДАЮ

Декан факультета АВТ

___________ Гайворонский С.А.

"___"_________ 2007 г.

Создание меню и диалогов

Методические указания к выполнению лабораторных работ по курсу «Языки программирования и методы трансляции» для направления

510200 "Прикладная математика и информатика"

Томск 2007

Цель работы: Разработка полнофункциональных приложений в среде C++Builder. Получить основные навыки в использовании меню при разработке приложений. Использование стандартных диалогов.

Задание

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

Рис.1. Пример интерфейса для работы с меню и диалогами

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

  1. Подготовить новый проект.

  2. Создать приложение (на одной форме) с использованием различных меню в соответствии с вариантом задания.

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

Методические указания

Одним из основных элементов интерфейса Windows программ является включение в него различного вида меню.

Создание меню

В приложениях, написанных на Builder, могут быть реализованы меню двух основных видов:

Главное меню (MainMenu). Такое меню принадлежит форме и отображается вместе с ней под панелью заголовка окна. Если в приложении несколько форм, то для удобства можно объединять меню всех активных форм в одном.

Всплывающее меню (контекстное, PopupMenu). Такое меню предусмотрено почти у всех компонентов (т.е. свойство на стадии разработки). Во время работы программы такое меню возникает (всплывает) при нажатии правой кнопки мыши на этом компоненте. Предусмотрено такое меню и у формы.

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

На самом нижнем уровне меню лежат команды меню — пункты, с которыми связана та или иная процедура, реализующая реакцию приложения на выбор этого пункта меню. Команды меню объединяются в подменю. Подменю — это пункты, выбор которых позволяет открыть список пунктов меню или других подменю.

Каждый пункт меню является компонентом TMenuItem (нет на палитре компонент). Каждый компонент TMenuItem имеет свойства:

Enable — запрещает исполнение этого пункта;

Visible — указывает, является ли видимым этот пункт меню; если значение False, то в меню нет строки с этим пунктом;

Технология создания меню приложения в С++Builder

Практически все приложения Windows имеют свое меню – один из распространенных элементов пользовательского интерфейса. Меню представляет собой список команд. Выбор пункта меню равносилен выполнению некоторой команды. Конструировать и создавать на форме полосу главного меню, а также сопутствующие выпадающие меню в среде Delphi, позволяет компонент MainMenu (или PopupMenu).

Создание меню включает три (четыре) шага:

  1. помещение MainMenu (PopupMenu) на форму;

  2. вызов Дизайнера Меню для конструирования списка (иерархического) команд;

  3. создание обработчиков событий для пунктов меню;

  4. привязка к компоненту (только для контекстного PopupMenu).

(1)

При помещении MainMenu (или PopupMenu) на форму это выглядит, как просто иконка. Причем, иконка неизменяемого размера. Иконки данного типа называют "невидимыми компонентом", поскольку они невидимы во время выполнения программы.

( 2)

Вызов Дизайнера Меню через свойство компонента MainMenu Items в Инспекторе Объектов и определение пунктов меню в Дизайнере Меню. Для запуска необходимо дважды щелкнуть на значении свойства Items, где написано «(Меню)». Можно также щелкнуть на компоненте MainMenu (или PopupMenu) на форме и воспользоваться контекстным меню от правой кнопки мыши. Заполнив свойство Caption, задают наименование раздела меню. Помимо этого появляется строка меню на форме, с единственным пунктом пустышкой. После этого справа появляется пустышка для наименования другого раздела меню (заполняется по потребности), а внизу пустышка для первого пункта меню в этом разделе. По мере заполнения пунктов меню, появляется пустышка для новых пунктов. Сначала меню состоит из одного пустого элемента. Добавление пункта меню заключено в заполнении пустого элемента и выполнении “Enter”. Для вставки можно использовать “Insert”. Для удаления – “Delete”. Если перед некоторой буквой в тексте команды поставить знак &, то во время выполнения программы соответствующая буква будет изображаться с подчеркиванием. Эту букву можно использовать в качестве “горячей” клавиши.

(3)

Для создания обработчиков событий можно воспользоваться одним из трех способов:

а) просто дважды щелкнуть мышкой в нужный пункт меню, находясь в редакторе меню, вписать в шаблон процедуры необходимые действия;

б) выбрать этот пункт в меню, а в Object Inspector, на странице Events, обратиться к строке onClick, дважды щелкнуть мышкой, вписать в шаблон процедуры необходимые действия;

в) если ранее создана процедура – обработчик, на странице Events обратиться к строке onClick и указать имя процедуры, исполняющейся при выборе этого пункта меню. Тогда при выборе пункта меню, во время выполнения программы, инициируется событие onClick и запускается эта процедура–обработчик.

(4)

Чтобы Pop Up меню вызывалось по нажатию правой кнопки мыши во время работы программы, необходимо его привязать к конкретному компоненту или к форме. Для этого выбирают компонент и, в свойстве PopupMenu инспектора объектов, указывают имя ранее созданного Pop Up меню.

Р ис. 1. Фрагмент заполнения пунктов меню с помощью конструктора (дизайнера) меню.

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