
Лабораторная работа №18
Тема: «Меню, панели инструментов»
Цели работы:
Получение практических навыков программирования в среде Visual Basic
Получение практических навыков в создании меню
Часть 1 меню
Теоретическая часть
Д
ля
создания меню может быть применен
редактор меню Menu Editor. Для его запуска
можно воспользоваться, например, командой
меню Tools,
Menu
Editor.
Окно редактора меню (рисунок 18.1) в
основном состоит из двух областей. В
верхней части окна расположены поля
свойств Caption
и Name
текущего элемента меню. Первое из них
определяет надпись в меню, а второе –
имя элемента меню в исходном тексте
програм –мы. Поле в нижней части окна
отображает структуру меню. Кнопки над
ним позволяют эту структуру редактировать.
Поле Index
заполняется при создании массива
элементов меню. Если установить флажок
в поле Checked,
то пункт меню будет помечен галочкой
уже при старте программы. Поле Enabled
позволяет отключить пункт меню. Для
этого следует сбросить флажок или при
выполнении программы задать этому
свойству пункта меню значение False. При
этом пункт меню будет недоступен для
пользователя. Свойство Visible
управляет видимостью пункта меню.
Остальные пункты меню сдвигаются,
заполняя опустевшее место.
Кнопки со стрелками влево и вправо изменяют подчиненность выделенной строки. Чем больше отступ строки, тем она более подчинена. Кнопки со стрелками вверх или вниз позволяют переместить текущую строку соответственно выше или ниже.
Кнопка Next вставляет строку, если текущая является последней.
Кнопка Insert вставляет строку перед текущей строкой. Кнопка Delete удаляет текущую строку.
Программа, которую Вам предлагается реализовать снабжена меню. Элементы главного меню представляют собой виды продуктов питания (фрукты, овощи, орехи). Их пункты являются либо названиями конкретных продуктов, либо заглавиями подменю.
Практическая часть
Запустите Visual Basic. Если появится окно New Project, то выберите Standart.exe и создайте стандартный проект.
Для сохранения проекта в рабочей папке щелкните на кнопке Save Project панели инструментов, перейдите в корневой каталог диска d, с помощью кнопки Создание новой папки создайте свою рабочую папку, откройте ее и щелкните на кнопке Сохранить окна Save Project As.
В меню Tools (Сервис) щелкните на команде Options (Настройка) и затем щелкните на вкладке Editor (Редактор). Если в окне Require Variable Declaration (обязательное объявление переменных) нет флажка, щелкните на окне, чтобы добавить его. Щелкните на ОК.
Создайте надпись в нижней части формы.
Щелкните на форме, Form1 чтобы сделать ее активной.
Запустите редактор меню командой Tools, Menu Editor.
Задайте свойства элементов управления в соответствии с таблицей.
Таблица 18.1
Объект |
Свойство |
Значение |
Form |
Name |
frmMain |
|
Caption |
Здоровая пища |
Label |
Name |
lblDisplay |
|
Alignment |
2-Center |
|
BorderStyle |
1-Fixed Single |
|
Caption |
Хотите кушать? Выбирайте! |
|
Font |
MS Sans Serif |
|
|
10 пунктов |
|
|
Bold (полужирный) |
|
BaсkColor |
Выбрать на палитре белый |
Menu(1) * |
Name |
mnuFruits |
|
Caption |
Фрукты |
Menu(2) |
Name |
mnuZitrus |
|
Caption |
Цитрусовые |
Menu(3) |
Name |
mnuLemon |
|
Caption |
Лимоны |
Menu(3) |
Name |
mnuOrang |
|
Caption |
Апельсины |
Menu(3) |
Name |
mnuApple |
|
Caption |
Яблоки |
Menu(3) |
Name |
mnuPear |
|
Caption |
Груши |
Menu(2) |
Name |
mnuVegetable |
|
Caption |
Овощи |
Menu(3) |
Name |
mnuCucumber |
|
Caption |
Огурцы |
Menu(3) |
Name |
mnuPotato |
|
Caption |
Картофель |
Menu(3) |
Name |
mnuTomato |
|
Caption |
Томаты |
Menu(2) |
Name |
MnuNuts |
|
Caption |
Орехи |
Menu(3) |
Name |
mnuWalnut |
|
Caption |
Грецкий орех |
Menu(3) |
Name |
mnuHazelnut |
|
Caption |
Лесной орех |
* В таблице цифра в скобках справа от слова Menu означает уровень пункта в иерархии меню.
В исходной программе, текст которой приведен далее, событийная процедура Form_Load выполняется при загрузке формы и осуществляет инициализацию функции Rnd, возвращающей случайное число из диапазона [0, 1).
Процедура Сообщение выводит передаваемую ей строку вместе со сцепленной с ней выбираемой случайным образом одним из пяти вариантов добавки в надписи lblDisplay.
Событийная процедура Form_Resize выполняется при изменении размера формы. Она определяет положение на форме и размер надписи lblDisplay. В этой процедуре происходит обращение к методу Move, который перемещает левый верхний угол окна объекта, к которому он применяется, в точку с заданными координатами X, Y, а также устанавливает заданные ширину и высоту поля объекта. При этом начало координат предполагается находящимся в левом верхнем углу формы. Ось X направлена вправо. Ось Y направлена вниз. Вот синтаксис этого метода:
ИмяОбъекта.Move X, Y, Ширина, Высота
Применяемые также в этой процедуре имена ScaleWidth и ScaleHeight обозначают текущую ширину и соответственно высоту активной формы.
В исходном тексте также присутствуют однотипные процедуры, обрабатывающие событие Click каждого из пунктов меню.
Введите исходный текст программы:
Option Explicit
Private Sub Form_Load()
Randomize
End Sub
Private Sub Сообщение (Str As String)
Dim i As Integer
Dim Строка As String
i = Int(5 * Rnd + 1)
Select Case i
Case 1
Строка = " - это очень вкусно."
Case 2
Строка = " - это неплохо."
Case 3
Строка = " - это полезно."
Case 4
Строка = " - великолепно."
Case 5
Строка = " - хотите еще?"
End Select
lblDisplay.Caption = Str & Строка
End Sub
Private Sub Form_Resize()
lblDisplay.Move 0, 0.75 * ScaleHeight, ScaleWidth, _
0.25 * ScaleHeight
End Sub
Private Sub mnuApple_Click()
Сообщение mnuApple.Caption
mnuApple.Enabled = False
End Sub
Private Sub mnuPotato_Click()
Сообщение mnuPotato.Caption
mnuPotato.Enabled = False
End Sub
Private Sub mnuPear_Click()
Сообщение mnuPear.Caption
mnuPear.Enabled = False
End Sub
Private Sub mnuCucumber_Click()
Сообщение mnuCucumber.Caption
mnuCucumber.Enabled = False
End Sub
Private Sub mnuHazelnut_Click()
Сообщение mnuHazelnut.Caption
mnuHazelnut.Enabled = False
End Sub
Private Sub mnuOrange_Click()
Сообщение mnuOrange.Caption
mnuOrange.Enabled = False
End Sub
Private Sub mnuLemon_Click()
Сообщение mnuLemon.Caption
mnuLemon.Enabled = False
End Sub
Private Sub mnuTomato_Click()
Сообщение mnuTomato.Caption
mnuTomato.Enabled = False
End Sub
Private Sub mnuWalnut_Click()
Сообщение mnuWalnut.Caption
mnuWalnut.Enabled = False
End Sub
Сохраните проект.
Запустите проект и проверьте его работу. Работа приложения должна соответствовать рисунку 9.2.
Продемонстрируйте работу проекта препода– вателю.