Всплывающее и динамическое меню — КиберПедия 

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Всплывающее и динамическое меню

2022-10-29 23
Всплывающее и динамическое меню 0.00 из 5.00 0 оценок
Заказать работу

Можно создать всплывающее меню, которое появляется, например, после нажатия правой кнопки мыши на месте маркера мыши. Для этого создается обычное меню с одной командой на самом верхнем уровне под именем, например, Pm и со свойством Visible=False; составляется проце­дура обработки события, нажатия правой кнопки мышки на форме:

Private Sub Form_MouseDown(Button as Integer, Shift as Integer,

X as Single, Y as Single)

Если нажата левая кнопка мышки, то вывод всплывающего меню

If Button=2 then PopUpMenu Form1.Pm ‘метод вывода всплывающего меню

End Sub

Динамическоеменю  можно создать меню не при проектировании программы, а во время ее выполнения. Его достоинством является большая гибкость, так как число и содержание пунктов меню может быть самым различным в зависимости от текущего состояния программы. Рассмотрим пример программы его создания (рис. 8.2.1).

     Пункт Добавить (под именем Add) служит для включения в конце меню нового пункта Пункт 1 (Пункт 2,...). Пункт Удалить (Del) исключ­ает пункт из последних добавленных пунктов. Пункт Выход (Exit) завершает работу программы. После выбора добавленного пункта, на­пр­и­мер Пункт 1, выводится окно сообщения с текстом “Выбран пункт 1”. Создадим новый проект и выполним команду Tools/Menu Editor и построим меню (рис. 8.2.2).

     При формировании пункта Bar с разделительной чертой “-“ в поле Index укажем число ноль, что означает создание массива под именем пункта меню (в нашем случае - Bar). Пока массив состоит из одного элемен­та Bar(0) - разделительной черты. В дальнейшем он будет исполь­зоваться для формирования пунктов меню.

 

 

      Рис.8.2.1. Вид меню при выполнении и проектировании программы

                               Рис. 8.2.2. Динамическое меню

 

     Составим следующие процедуры:

‘(General) (Declarations) ‑ раздел глобальных объявлений формы

‘объявление переменной ‑ указателя на последний пункт в массиве пунктов

Dim indexlastBar As Integer

Private Sub Form_ Load() ‘процедура загрузки формы

indexlastBar = 0 ‘указатель последнего элемента приравнять нулю.

del.Enabled = False

End Sub

Private Sub Add_ Click()     ‘добавление нового пункта меню

indexlastBar = indexlastBar + 1 ‘номер последнего пункта увеличивается на 1

Load bar(indexlastBar) ‘создание нового пункта под номером indexlastBar

‘формирование текста строки пункта для созданного нового пункта меню

bar(indexlastBar).Caption = ”Создан новый пункт ” & indexlastBar

del.Enabled = True ‘разрешение использовать пункт “Удалить”

End Sub

Private Sub del_Click() ‘Удаление последнего пункта меню

Unload bar(indexlastBar) ‘удалить последний элемент в массиве пунктов меню

indexlastBar = indexlastBar ‑ 1 ‘номер последнего пункта уменьшается на 1

del.Enabled = indexlastBar > 0 ‘разрешение использовать пункт “Удалить”

End Sub

Private Sub bar_Click(Index As Integer) ‘выполнение нового пункта

MsgBox ”Выбран пункт ” & Index ‘вывод сообщения выбранным пунктом

End Sub

Private Sub Exit_Click() ‘завершение работы программы

End

End Sub

Панель инструментов (ToolBar)

Панель содержит различные кнопки (компоненты Microsoft Win­dows Common Controls 6.0).

Специфичные свойства

Key  ‑ имя нажатой кнопки на пенели.

ButtonMenus  ‑ семейство объектов ButtonMenu (элементов меню), появ­ляю­щих­­ся при нажатии кнопок при условии Style=tbrDropdown.

DisabledImageList  ‑ имя объекта ImageList с изображениями, когда кнопка недоступна.

HotImageList  ‑ имя объекта ImageList с изображениями, отображаемыми при открытии меню.

Специфичные события

ButtonDropDown   ‑ происходит после щелчка на стрелочке объекта Button, которая появляется, когда Style=tbrDropDown. Событие может быть ис­поль­зовано для определения набора пунктов открывающегося меню.

ButtonMenuClick  ‑ происходит после щелчка мышью на объекте ButtonMenu.

     Пример создания панели с двумя кнопками: создания и открытия с графическими изображениями на кнопках (рис. 8.3.1).

     1. Нажмите клавишу ^T и выберите компоненты Microsoft Windows Common Controls 6.0.

2. Поместите c панели элементов объект ToolBar на форму и его свойству Align присвойте значение 1 (привязка панели к верхней стороне формы), нажмите кнопку с троеточием свойства Custom и перейдите на страницу Buttons в появившемся окне Property Pages.

3. Нажмите кнопку Insert Button для добавления новой кнопки со свойствами Index =2 (номер кнопки), Key =New (логическое имя кнопки), Style =0-tbrDefault. Свойство Caption (надпись кнопки) не будем исполь­зовать, так как все кнопки графические и без надписи.

4. Нажмите кнопку Insert Button для добавления новой кнопки со свойствами Index =3, Key =Open, Style =0-tbrDefault.

5. Нажмите кнопку OK, и на форме будет панель с двумя кнопками.

Для размещения рисунков на поверхности кнопок следует раз­мес­тить на форме список изображений ImageList (п. 6.24):

1. Наж­ми­те кнопку с троеточием свойства Custom этого объекта и в по­явив­­шем­ся ок­не откройте страницу Images (рис. 8.3.2). Нажмите кнопку InsertPicture и выбе­рите файл Graphics\Bitmaps\Tblr_w95\New.bmp с изо­бра­­же­нием чистого листа. Снова нажмите кнопку Insert Picture и выбе­ри­те файл Graphics\Bitmaps\Tblr_w95\Open.bmp с изображением желтой пап­ки.

   2. Нажмите кнопку OK.

3. Выделите объект ToolBar1 и нажмите на кнопку с троеточием у свойства Custom; на странице General укажите ImageList =ImageList1.

4. Перейдите на страницу Buttons и задайте Index =2, Image =1; нажмите кнопку Apply, затем задайте Index =3, Image =2.               

     
 

Рис. 8.3.1. Окно свойств кнопок панели     Рис. 8.3.2. Окно списка рисунков

 

 

5. Нажмите клавишу OK. Панель готова (рис. 8.3.3).

                       Рис. 8.3.3. Панель инструментов

 

Для обслуживания такой панели составим процедуру:

Private Sub Toolbar1_ButtonClick(ByVal Button As ComctlLib.Button)

‘Button.Key ‑ значение свойства Key кнопки панели, по которой щелкнули

If Button.Key = “New” Then MsgBox (“Создание”) Else MsgBox (“Открытие”)

End Sub

Общий диалог


Поделиться с друзьями:

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.013 с.