Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы ПП all-in-one.docx
Скачиваний:
10
Добавлен:
14.11.2019
Размер:
2.64 Mб
Скачать

Всплывающее меню

Всплывающее (локальное) меню (pop-up menu) представлено в C++Builder компонентом PopupMenu. Отыщите его в палитре компонентов на страниц Standard (рис. 14).

Поместите компонент на форму и присвойте новому компоненту имя PopupMenu:

Познакомьтесь с некоторыми свойствами компонента всплывающего меню (таблица 4).

Таблица 4. Важнейшие свойства компонента PopupMenu.

Свойство

Описание

Alignment

AutoPopup

Items

Определяет место, в котором появляется меню относительно курсора мыши:

paLeft — левый верхний угол меню совпадает с позицией курсора мыши.

paCenter — середина верхнего края меню совпадает с позицией курсора мыши.

paRight— правый верхний угол меню совпадает с позицией курсора мыши.

Если равно true, то меню всплывает автоматически после щелчка правой кнопкой мыши. Если равно false, то за отображение меню отвечает программист.

Обеспечивает доступ к пунктам меню.

Шаг 19. Всплывающее меню формируется, как и главное, — в дизай­нере меню. Двойным щелчком мыши на компоненте PopMenu откройте окно ди­зайнера меню и, используя уже известные вам приемы, добавьте в меню пун­кты Half Size (с идентификатором PopHalfSizeItem), Normal Size (с идентификато­ром PopNormalSizeItem) и

Double Size (с идентификатором PopDoubleSizeItem).

Шаг 19. 1. Во всех пунктах всплывающего меню установите следующие свойства:

Enabled = false GroupIndex = 1 Radioltem = true

Кроме этого, пометьте пункт Normal Size, установив в нем свойство Checked в значение true. Таким образом, команды всплывающего меню дублируют неко­торые команды главного меню (рис.):

Шаг 20. Теперь перейдите к программированию обра­ботчиков событий для выскакивающего меню. В данном примере команды всплывающего меню обрабаты­ваются так же, как и команды одноименных пунктов главного меню. По­скольку для пунктов главного меню обработчики уже написаны, то их про­сто нужно подключить к пунктам всплывающего меню.

Для этого активизируйте в дизайнере меню пункт Half Size и выберите в инспек­торе объектов страницу Events. Теперь в значении события OnClick откройте вы­падающий список и выберите обработчик

HalfSize1CIick () :

То же са­мое проделайте с пунктами Normal Size и Double Size, но установите в них обра­ботчики NormalSize1Click() и DoubleSize1Click() соответственно.

Шаг 21. Для синхронной работы главного и всплывающего меню добавьте в следующие функции строки, выделенные жирным шрифтом:

void__fastcall TPictureForm::HalfSize1Click

(TObject *Sender)

{

HalfSize1->Checked = true;

HalfSize2->Checked = true;

//показать картинку половинного размера

}

// -------------------------------------

void__fastcall TPictureForm::NormalSize1Click

(TObject *Sender)

{

NormalSize1->Checked = true;

NormalSize2->Checked = true;

// показать картинку нормального размера

}

// -------------------------------------

void__fastcall TPictureForm::DoubleSize1Click

(TObject *Sender)

{

DoubleSize1->Checked = true;

DoubleSize2->Checked = true;

// показать картинку двойного размера

}

// -------------------------------------

void TPictureForm::EnableCommands(bool Enable)

{

SaveAs1->Enabled = Enable;

Close1->Enabled = Enable;

HalfSize1->Enabled = Enable;

NormalSize1->Enabled = Enable;

DoubleSize1->Enabled = Enable;

HalfSize2->Enabled = Enable;

NormalSize2->Enabled = Enable;

DoubleSize2->Enabled = Enable;

}

Шаг 22. Всплывающее меню создано. Осталось сделать так, чтобы оно вызывалось по щелчку правой кнопки мыши в области формы. Для этого активизируйте форму и запишите в значении свойства PopupMenu имя разработанного всплывающего меню PopupMenu. Можно ввести это значение с клавиатуры или выбрать из выпадающего списка (рис.).

Шаг 22.1. Скомпилируйте и запустите проект. Щелчок правой кнопкой мыши окне приложения вызовет появление всплывающего меню. Все его пункты окажутся запрещены. Чтобы пункты всплывающего меню заработали, выполните команду главного меню

File | Open... После этого убедитесь, что выпaдающее меню работает синхронно с главным меню.

Продолжите развитие приложение для просмотра графических файлов. Теперь предстоит решить две задачи:

  1. Организовать выбор графического файла по командам меню Open... и Save As...

  1. Реализовать загрузку и отображение картинки

Первая задача решается с помощью стандартных диалоговых компонентов OpenDialog и SaveDialog, вторая — с помощью специального компонента Image.