Тема 3. Створення процедур опрацювання подій.
Питання теми та основні терміни.
Поняття події.
Оператор присвоювання.
Програмування процедур опрацювання подій.
Програмування процедури опрацювання події Load.
Подія, оператор присвоювання, процедура
Інформаційні матеріали теми
3.1. Поняття події.
Використання подій.
Крім виконання різноманітних задач, об’єкти програми можуть реагувати на деякі дії користувача або інші зовнішні дії. Ці дії враховуються за допомогою подій.
Подія відбувається, коли користувач робить з елементом управління певні маніпуляції, наприклад, клацає на кнопці команди або змінює вміст текстового поля. Подія відбувається і тоді, коли користувач залишає форму або переходить до використання іншої програми. Програміст не може відмінити настання події, але він має можливість обрати, як програма відреагує на настання цієї події. Для опрацювання подій пишеться відповідний код.
Завжди, коли з програмою щось “відбувається”, генерується настання деякої події. Кожний об’єкт генерує свої події. Тільки форма може генерувати подію UnLoad і пропонувати на нього відповідь (тут ми не беремо до уваги події, обумовлені користувачем, оскільки це ставиться до більш складних питань програмування на VBA ). Але деякі події - наприклад, подія Click ~ є загальними відразу для багатьох типів елементів управління. Коли користувач клацає на формі, програма може відповідати на це зміною кольору форми. Коли ж здійснюється клацання на кнопці команди в цій формі, то подія Click для цієї кнопки може бути запрограмована так, щоб закрити форму і завершити виконання програми. Обидва об’єкти мають подію того самого типу. Проте подія Click форми відрізняється від події Click кнопки команди.
Далі наведені деякі з головних дій користувача, що генерують виклик подій у програмі.
· запуск програми;
· натискання клавіші на клавіатурі;
· щиголь кнопкою миші;
· переміщення миші;
· перетягування об’єкта;
· вихід із програми.
Деякі з подій наведені у табл. 3.1.
Таблиця 3.1. Деякі події, що викликаються користувачем
Подія |
Дія користувача, що викликає подію |
Change |
Користувач змінює текст у поле тексту або поле зі списком |
Click |
Користувач клацає на об’єкті основною кнопкою миші (зазвичай це ліва кнопка) |
DblClick |
Користувач двічі клацає на об’єкті основною кнопкою миші |
DragDrop |
Користувач перетаскує елемент управління в нове положення |
DragOver |
Користувач перетаскує об’єкт поверх елемента управління |
GotFocus |
Об’єкт одержує фокус |
KeyDown |
Натискується клавіша за умови, що об’єкт знаходиться у фокусі |
Keypress |
Натискується і відпускається клавіша за умови, що об’єкт знаходиться у фокусі |
KeyUp |
Відпускається клавіша за умови, що об’єкт знаходиться у фокусі |
LostFocus |
Відбувається безпосередньо перед тим, як об’єкт утрачає фокус |
MouseDown |
Натискується кнопка миші за умови, що покажчик миші знаходиться на об’єкті |
MouseMove |
Покажчик миші рухається поверх об’єкта |
MouseUp |
Відпускається кнопка миші за умови, що покажчик миші знаходиться на об’єкті |
Незважаючи на певну схожість у подіях, між ними є певні відмінності. Наприклад, подія Click генерується лише при натискування лівої кнопки миші. Натискування інших кнопок цієї події не створює. Події MouseDoun та MouseUp не лише можуть викликатись натискуванням будь-якої кнопки миші, але і можуть повідомити, яка саме кнопка при цьому натискувалась, щоб програміст міг передбачити відповідні дії.
Розпізнавання моменту настання події.
Операційна система автоматично розпізнає події. Коли подія настає, операційна система намагається повідомити про це програмі, що виконується. Програма повинна інтерпретувати повідомлення системи і виконати відповідні дії. Повідомлення, які надсилаються операційною системою в наслідок настання подій, одержуються та опрацьовуються елементами управління та формами, з яких створений інтерфейс користувача. При цьому зовсім не обов’язково передбачити опрацювання абсолютно всіх подій – деякі з них можуть бути проігноровані.
Програма, створена мовою VBA, може опрацьовувати два основних типи подій: події, що ініційовані користувачем, і події, викликані операційною системою. Перший тип подій зустрічається частіше, тому долі буде розглянуто опрацювання саме таких подій. Такі події дають можливість користувачеві управляти роботою програми. З іншого боку, програміст, використовуючи події, може обмежити певні дії користувача в небажаному напрямку, наприклад, заблокувавши деякі кнопки, щоб відмінити подачу некоректних команд.
Подія, що ініціюються користувачем, виникають в результаті його дій з інтерфейсом програми. Перш за все, це натискування клавіш клавіатури і клацання кнопками маніпулятора миша. Однак кожна така дія може викликати появу не однієї, а декількох подій. Наприклад, клацання маніпулятором в текстовому полі генерує подію Click. Але при цьому також генеруються події GotFocus , яка відповідає переміщенню покажчика на даний об’єкт (він одержує фокус), і LostFocus, яка відповідає події втрати фокуса для об’єкта, з якого відбулось переміщення покажчика маніпулятора. Отже, будь-яка з дій користувача з інтерфейсною частиною програми може викликати цілий набір подій і порядок їхнього виклику може виявитися важливим.
Опрацювання подій здійснюється за допомогою процедур опрацювання подій. Оскільки однією з основних дій є присвоювання властивостям елементів управління або іншим об’єктам певних значень, то далі буде розглянутий оператор присвоювання.
25 26 27 28 Наверх ↑