Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Элементы управления




Примеры программ модуля класса формы

Лекция № 33

 

 

Рассмотрим несколько простых примеров использования свойств и методов формы с помощью процедур обработки событий. Будем инициировать события, описанные в табл. 9.9, а в ответ на них с помощью окна функций MsgBox будем сообщать о типе события или менять видимые свойства формы. Начнем с события Click, так как процедуру обработки этого события легче всего создать: достаточно дважды щелкнуть на форме (используем созданную в начале главы форму) в режиме разработки, и появится шаблон процедуры. Запишем после заголовка процедуры следующий оператор MsgBox ("Событие: Click"):

 

Private Sub UserForm_Click()

MsgBox ("Событие: Click")

End Sub

 

После запуска формы на выполнение на экране поверх формы появится форма. Щелкнув на ней мышью, на экране появится сообщение в виде сообщения "Событие: Click"

Если даже не часто будет нужно использовать подобное событие для формы, не стоит забывать о такой возможности. А еще лучше поступать следующим образом. Всегда использовать это событие на случай, когда пользователь форм при попытке щелкнуть на каком либо элементе управления не совсем точно позиционирует курсор мыши. Если при этом будет выполняться процедура обработки события Click для формы с выводом предупреждающего сообщения о недостаточной уверенности в действиях пользователя, с приложением станет приятно работать.

Рассмотрим событие Activate. Запишем в модуле рассматриваемой формы следующую процедуру:

Private Sub UserForm_Activate()

MsgBox ("Событие: Activate")

End Sub

После запуска формы и ее появления на экране появится сообщение о том, что произошло событие Activate.

Рассмотрим события Deactivate и Terminate. Первое из них инициируется всякий раз, когда форма перестает быть активной, а второе – когда форма выгружается из памяти. Процедура обработки события Terminate просто добавляется к имеющейся коллекции программ формы UserForml и выполняется при завершении работы с формой. Для демонстрации же события Deactivate необходимо, не выходя из приложения, сделать форму UserForml неактивной. Это можно осуществить, если активной станет другая форма. И ее надо создать.

Создадим новую форму либо при помощи кнопки Insert UserForm, либо командой Insert ® UserForm. Пусть она имеет имя, которое ей присваивается по умолчанию: UserForm2 Наметим план тестирования:

1. Загружаем форму UserForml.

2. Событие Click формы UserForml вызывает метод Show для загрузки фомы UserForm2.

3. Загрузка/выгрузка формы UserForm2 не сопровождаются никакими событиями.

4. Форма UserForml имеет процедуры обработки событий: Click, Activate, Deactivate, Terminate.

Для выполнения поставленной задачи в модуль формы UserForml необходимо поместить код листинга 43.

Пример 43. Процедуры событий UserForml.

 

'Обработчик события Click формы UserForml

Private Sub UserForm_Click()

'Вывод окна сообщения на экран:

MsgBox ("Событие: Click. Выводим UserForm2")

'Загрузка формы UserForm2:

UserForm2.Show

End Sub

 

'Обработчик события Activate формы UserForml

Private Sub UserForm_Activate()

'Вывод окна сообщения на экран:

MsgBox ("Событие: Activate для формы UserForml")

End Sub

 

Private Sub UserForm_Deactivate()

'Вывод окна сообщения на экран:

MsgBox ("Событие: Deactivate для формы UserForml")

End Sub

 

Private Sub UserForm_Terminate()

'Вывод окна сообщения на экран:

MsgBox ("Событие: Terminate для формы UserForml")

End Sub

 

После запуска формы на выполнение можно проследить за инициализацией всех четырех событий. Сразу после за грузки UserForml выдается сообщение "Событие: Activate для формы UserForml" (процедура UserForm_Activate). Щелчок на форме приводит к выводу сообщения "Событие: Click. Выводим UserForm2" (процедура UserForm_Clic), загрузке формы UserForm2 (процедура UserForm_Click) и выводу сообщения "Событие: Deactivate для формы UserForml" (процедура UserForm_Deactivate) в результате того, что форма UserForm1 становится неактивной, Если бы была записана процедура события Activate и для формы UserForm2, то один щелчок мыши вызвал бы инициализацию трех событий. При выгрузке из памяти формы UserForml на экран дается сообщение процедуры UserForm_Terminate.

Событие Initialize инициализируется при загрузке формы при помощи оатора Load или метода Show. При запуске формы это событие не инициализируется. Это событие следует использовать при первой загрузке формы для установки каких-либо свойств формы ее элементов управления. В примере 44 для этого coбытия устанавливается свойство формы BackColor.

Для загрузки формы UserForm2 использется форма UserForml с программой обработки событий из примера 43. В примере 44 для установки свойства формы BackColor используется функция RGB, которая возвращает RGB-значение типа Long, используемое далее для присвоения значению UserForm2.BackColor. Синтаксис функции RGB:

RGB(red, green, blue)

Именованные аргументы:

Аргумент Описание
Red Обязательный; тип: Variant (Integer).Число в диапазоне 0-255; представляет красный компонент цвета
Green Обязательный; тип: Variant (Integer).Число в диапазоне 0-255; представляет зеленый компонент цвета
Blue Обязательный; тип: Variant (Integer).Число в диапазоне 0-255; представляет синий компонент цвета

 

Пример 44. Процедуры событий UserForm2

Dim sRED, sGREEN, sBLUE ' переменные задания цвета формы

'Процедура обработки события Initialize

'Инициализируется один раз: при загрузке

Private Sub UserForm_Initialize()

'задаем начальный цвет формы

sRED = 100

sGREEN = 100

SBLUE = 200

UserForm2.BackColor = RGB(sRED, sGREEN, sBLUE)

End Sub

 

'Процедура обработки события Click

'При каждой инициализации меняет цвет формы

'При недопустимых значениях sRED, sGREEN, sBLUE

'выдает ошибку времени исполнения

Private Sub UserForm_Click()

Dim i

'Меняем цвет формы:

sRED = sRED + 20

sGREEN = sGREEN +10

sBLUE = sBLUE - 20

i = RGB(sRED, sGREEN, sBLUE)

UserForm2.BackColor = i

 

'Изменить заголовок формы:

UserForm2.Caption = "Цвет: " & Str(i)

End Sub

 

После вывода формы с именем UserForm 2 на экран событие Click, будет приводить к изменению цвета и заголовка формы.

 

 

Объект UserForm может содержать те же элементы управления, что и находящиеся в диалоговых окнах Word, Excel или других приложений Windows Элементы управления – это элементы диалогового окна, позволяющие пользователю взаимодействовать с программой. Они включают в себя кнопки-переключатели, текстовые поля, линейки прокрутки, командные кнопки и т.д.

Многие производители программного обеспечения сделали доступным» пакеты, расширяющие набор элементов управления. Можно добавлять элементы управления (известные как объекты ActiveX и Automation) к панели Toolbox (панели элементов), предварительно создавая ссылку из проекта на библиотеку, содержащую расширенный набор элементов управления. После этого можно добавлять данные элементы управления на панель Toolbox.

Каждый элемент управления – это объект с определенными свойствами, методами и событиями. Как и для формы, их содержащей, можно устанавливать свойства элементов управления программным путем или посредством Properties Window редактора VBA. В программе можно присваивать или восстанавливать значения свойств элементов управления так же, как для любых других объектов.





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


Дата добавления: 2014-01-04; Просмотров: 338; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.021 сек.