Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Примеры программ модуля класса формыСодержание книги
Поиск на нашем сайте
Рассмотрим несколько простых примеров использования свойств и методов формы с помощью процедур обработки событий. Будем инициировать события, описанные в табл. 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
После вывода формы с именем UserForm2 на экран событие Click , будет приводить к изменению цвета и заголовка формы.
|
||||
Последнее изменение этой страницы: 2024-06-17; просмотров: 5; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.20.205 (0.006 с.) |