ВІКІСТОРІНКА
Навигация:
Інформатика
Історія
Автоматизація
Адміністрування
Антропологія
Архітектура
Біологія
Будівництво
Бухгалтерія
Військова наука
Виробництво
Географія
Геологія
Господарство
Демографія
Екологія
Економіка
Електроніка
Енергетика
Журналістика
Кінематографія
Комп'ютеризація
Креслення
Кулінарія
Культура
Культура
Лінгвістика
Література
Лексикологія
Логіка
Маркетинг
Математика
Медицина
Менеджмент
Металургія
Метрологія
Мистецтво
Музика
Наукознавство
Освіта
Охорона Праці
Підприємництво
Педагогіка
Поліграфія
Право
Приладобудування
Програмування
Психологія
Радіозв'язок
Релігія
Риторика
Соціологія
Спорт
Стандартизація
Статистика
Технології
Торгівля
Транспорт
Фізіологія
Фізика
Філософія
Фінанси
Фармакологія


События и событийные процедуры

 

Событие – это что-то, что может произойти с диалоговым окном или элементом управления диалогового окна. Типичные примеры событий: щелчок на кнопке, переключателе и т.д. Другие примеры событий: изменение содержимого окна редактирования или выбор элемента списка. Щелчок мышью, нажатие клавиши и действия, внутренние для вашего компьютера, – все они запускают или иными словами влекут за собой события.

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

Такие объекты, как формы и элементы управления приводят в действие некоторые события. Можно написать собственные VBA-процедуры, реагирующие на события. Такие процедуры, называются событийными процедурами или процедурами обработки событий.

Событийные процедуры следует записывать в модуль класса, который является частью UserForm. При этом такие процедуры должны иметь имена в виде ObjectName_EventName, где ObjectName – имя формы или элемента управления, a EventName – имя события, с которым следует работать. Такой формат имени, позволяет VBA сопоставлять заданному событию требуемую процедуру.

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

 

Таблица 9.9. События объектов UserForm

Событие Синтаксис заголовка процедуры обработки события Описание
Activate Private Sub objecf_Activate() Инициируется всякий раз, когда окно формы становится активным. Это событие используется для обновления содержимого диалоговых элементов управления, чтобы отразить любые изменения, которые произошли, пока окно формы было неактивным
Click Private Sub object_Click(index As Long) Инициируется всякий раз, когда по форме (любой ее части, не занятой элементами управления) щелкают мышью
DblClic Private Sub object_DblClick(index As Long, ByVal Cancel As MSForms.ReturnBoolean) Инициируется всякий раз, когда по форме (любой ее части, не занятой элементами управления) дважды щелкают мышью
Deactivate Private Sub object_Deactivate() Инициируется всякий раз, когда форма перестает быть активной
Initialize Private Sub object_Initialize() Инициируется всякий раз, когда форма впервые загружается в память посредством выполнения оператора Load или с помощью метода Show. Это событие используется для инициализации элементов управления формы при ее появлении на экране.
Resize Private Sub UserForm_ Resize() Инициируется при изменении размеров формы
Terminate Private Sub object_Terminate() Инициируется всякий раз, когда форма выгружается из памяти. Событие используется для осуществления любых специальных служебных задач, которые необходимо выполнить прежде, чем переменные формы будут выгружены

 

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

 

Рассмотрим несколько простых примеров использования свойств и методов формы с помощью процедур обработки событий. Будем инициировать события, описанные в табл. 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.

 

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

 

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

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

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

 

Использование Toolbox (панели элементов)

 

Редактор VBA в режиме разработки вместе с формой выводит на экран Toolbox (панель элементов) (если вывод этой панели не отключен при помощи меню View ® Toolbox). На рис. 9.11 Toolbox показана в виде плавающего окна, кнопки на панели Toolbox активизируют различные инструменты, которые позволяют помещать на форму элементы управления.

Toolbox (подобно всем другим панелям инструментов) можно настраивать. Если установили дополнительные элементы управления независимых производителей или произвели настройку панели, она может выглядеть иначе, чем та, что показана на рисунке 9.11. На рис. 9.11 присутствуют только стандартные элементы управления, поставляемые вместе с VBA.

 

Рис. 9.11. Панель Toolbox:

1 – Select Objects (выбор объектов), 2 – Label (надпись), 3 – TextBox (поле), 4 – ComboBox (поле со списком), 5 – ListBox (список), 6 – CheckBox (флажок), 7 – OptionButton (переключатель), 8 – ToggleButton (выключатель), 9 – Frame (рамка) 10 – CommandButton (кнопка), 11 – TabStrip (набор вкладок), 12 – MultlPage (набор страниц), 13 – ScrollBar (полоса прокрутки), 14 – SpinButton (счетчик), 15 – Image (рисунок), 16 –RefEdit

 

Чтобы воспользоваться панелью Toolbox для добавления элементов управления к форме, надо выполнить следующие действия:

1. Щелкнуть на Toolbox по кнопке, соответствующей элементу управления, который надо добавить к форме. Указатель мыши изменит форму на перекрестие, когда будет находиться на форме.

2. Установить перекрестие в то место формы, в который нужно поместить верхний левый угол нового элемента управления.

3. Нажать и удерживать левую кнопку мыши.

4. Переместить мышь вниз и вправо, пока элемент управления не примет нужный размер, после чего отпустите кнопку мыши. Редактор VBA вставит в форму элемент управления, и указатель мыши вновь примет форму стрелки.

Можно изменить размер самой формы. Для этого надо щелкнуть по строке заголовка формы для ее выделения и затем, переместиь один из маркеров изменения размеров, увеличить или уменьшить размер формы до желаемого. Маркеры изменения размеров –это маленькие квадратики, которые появляются в углах и на серединах сторон графического объекта (наряду с толстой серой границей) при выделении объекта.

 

© 2013 wikipage.com.ua - Дякуємо за посилання на wikipage.com.ua | Контакти