Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Топ:
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Интересное:
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
mvarError = ““ 'формирование значения свойства Errors
If Y = 0 Then ‘деление на ноль
mvarError = “Деление на ноль“ ‘формирование значения свойства Errors
RaiseEvent OnErrors(mvarError) ‘генерация события OnErrors
div = 0 ‘возвращение нуля в качестве результата
Else: ‘деление возможно
div = round(X / Y, mvarroundres) ‘формирование результата X/Y
End If
End Function
Public Function mult(ByVal X As Double,ByVal Y As Double)As Double’X*Y
mvarError = ““ 'формирование значения свойства Errors
mult = round(X * Y, mvarroundres) ‘формирование результата X*Y
End Function
Public Function add(ByVal X As Double,ByVal Y As Double)As Double ’X+Y
mvarError = ““ 'формирование значения свойства Errors
add = round(X + Y, mvarroundres) ‘формирование результата X+Y
End Function
Private Sub Class_Initialize() ‘инициализация при создании объекта
mvarError=““: mvarroundres=3 ‘умалчиваемые значения
End Sub
8. Разместим на форме кнопки Command1, Command2 (для тестирования работы класса) и составим процедуры для этой формы.
‘(General) (Declarations) ‑ раздел глобальных объявлений формы
‘объявление объектной переменной obCalc типа Calc с событиями класса
Private WithEvents obCalc As calc
Private Sub Form_Load() ‘процедура загрузки формы
Set obCalc = New Calc ‘создание объекта obCalc класса Calc
obCalc.roundres = 6 ‘свойству Roundres присваивается значение 6
End Sub
Private Sub Command1_Click() ‘процедура проверки деления
Debug.Print obCalc.div(6, 0) ‘выполнение метода div (6/0!) и вывод
If obCalc.Errors <> ““ Then MsgBox obCalc.Errors ‘сообщение об ошибке
End Sub
Private Sub Command2_Click() ‘процедура проверки сложения
Debug.Print obCalc.add(6,8) ‘выполнение метода Add (6,8) и вывод суммы
End Sub
Private Sub obCalc_onerrors(nameerror As Variant) ‘cобытие Onerrors
MsgBox “Событие OnErrors “+nameerror+”!” ‘вывод сообщения об ошибке
End Sub
9. Сохраним и выполним приложение.
Аналогичным образом можно создать класс на основе класса Calc.
Вопросы для самопроверки и контроля

Вопросы для самопроверки
1. В чем состоит разница между закрытыми и открытыми процедурами?
2. Что означает слово Public в заголовке процедуры или функции?
Контрольные вопросы
1. Что означает слово Private в заголовке процедуры или функции?
2. Какие процедуры содержит модуль формы?
3. В чем заключается отличие класса от модуля?
4. Что означает слово WithEvents в объявлении объекта?
5. В чем состоит разница между процедурами-свойствами типа Get и Let?
Глава 8. Разработка интерфейса
Меню
. Для формирования меню выполните команду Tools/Menu Editor. Появится окно редактора меню (рис. 8.1.1) с предлагаемым далее примером. Элементы меню обладают свойствами и поддерживают одно событие Click. Для каждой формы может быть не более одного меню. Меню прикрепляется к левому верхнему углу формы.
![]() |
Специфичные свойства
Caption ‑ определяет текст строки меню, выводимый на экран. Если указать “ & ”, то следующий за ним символ будет подчеркнут и станет символом ускоренного вызова при совместном нажатии клавиши Alt для открытия меню. Для включения в меню строки-разделителя нужно указать Caption=”-“; при этом указывается значение и для Name.
Name ‑ определяет программное имя элемента меню для ссылок.
Checked - помечает или удаляет “галочку” рядом с выбранной строкой меню, включая или выключая состояние команды меню.
ShortCut - задает клавишу прямого вызова команды меню, не открывая меню.
Enabled ‑ запрещает/разрешает использование команды меню.
Visible ‑ запрещает/разрешает отображение на экране команды меню.
Index ‑ используется в режиме динамического формирования специальных меню как номер элемента массива с пунктами меню (п.8.2).
Горизонтальные стрелочки используются для перемещения строк по уровням иерархии строк, вертикальные ‑ для перемещения строк по вертикали. Кнопки Next, Insert и Delete используются, соответственно, для перехода на формирование следующей строки меню, вставки новой строки перед текущей и удаления текущей строки меню.
Для определения процедуры, которая выполняется при выборе строки меню, нужно раскрыть меню и щелкнуть мышкой на этой строке. Появится программное окно для набора текста этой процедуры.
Рекомендуется пункты меню, которые вызывают диалоговые окна, заканчивать троеточием.
Пример создания меню (рис. 8.1.2).
![]() |
Используя меню, можно изменять цвет формы на красный, синий, белый или на любой, который пожелает пользователь; можно изменить размер формы на маленький, или на большой (на весь экран).
Меню состоит из двух пунктов первого уровня (цвет, размер), двух подменю второго уровня (первое: выбрать цвет, выход (Exit) и второе: маленький (Small) и большой (Big)) и одного подменю третьего уровня: красный (Red), синий (Blue), белый (White) и любой (Any) (рис. 8.1.1) Разместим на форме объект Common Dialog для настройки цвета (пп. 8.4.1, 8.4.4).
Приведем тексты процедур.
Private Sub Form_Load() ‘процедура загрузки формы
white.Enabled = False ‘блокировка строки “Белый”, форма уже белая
small.Enabled = False ‘блокировка строки меню “Маленький”
End Sub
Private Sub red_Click() ‘процедура обработки строки меню “Красный”
Form1.BackColor = QBColor(4) ‘цвет формы меняется на красный
red.Enabled = False ‘блокировка строки “Красный”, форма уже красная
blue.Enabled = True ‘разблокировка строки “Синий”
white.Enabled = True ‘разблокировка строки “Белый”
End Sub
Private Sub blue_Click() ‘процедура обработки строки меню “Синий”
Form1.BackColor = QBColor(1) ‘цвет формы меняется на синий
red.Enabled = True ‘разблокировка строки “Красный”
blue.Enabled = False ‘блокировка строки “Синий”, форма уже синяя
white.Enabled = True ‘разблокировка строки “Белый”
End Sub
Private Sub white_Click()‘процедура обработки строки меню “Белый”
Form1.BackColor = QBColor(15) ‘цвет формы меняется на белый
red.Enabled = True ‘разблокировка строки “Красный”
blue.Enabled = True ‘разблокировка строки “Синий”
white.Enabled = False ‘блокировка строки “Белый”, форма уже белая
End Sub
Private Sub any_Click() ‘процедура обработка строки меню “Любой”
CommonDialog1.Flags = cdlCCRGBInit ‘диалог выбора цвета (п.8.4.4)
CommonDialog1.ShowColor ‘вывод окна настройки цвета (рис.8.4.4.1)
Form1.BackColor = CommonDialog1.color ‘цвет формы меняется на новый
red.Enabled = True: blue.Enabled = True: white.Enabled = True
End Sub
Private Sub small_Click()‘процедура обработки строки “Маленький ”
Form1.WindowState = 0 ‘уменьшение размера формы
small.Enabled = False ‘блокировка строки меню “Маленький”
big.Enabled = True ‘разблокировка строки меню “Большой”
End Sub
Private Sub big_Click() ‘процедура обработки строки меню “Большой”
Form1.WindowState = 2 ‘распахивание формы на весь экран
small.Enabled = True ‘разблокировка строки меню “Маленький”
big.Enabled = False ‘блокировка строки меню “Большой”, уже большая
End Sub
Private Sub exit_Click()‘процедура обработки строки меню “Выход”
End ‘окончание работы программы
End Sub
|
|
|
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
© cyberpedia.su 2017-2025 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!