Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual Basic 6.0~01.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
21.23 Mб
Скачать

Мал. 2.6. Список подій, пов'язаних з формою. Отримання довідки по подіях

У довідковій системі Visual Basic можна знайти довідку про будь-яку подію, підтримувану елементом. На наступному малюнку показана довідка по події Activate.

Замість того щоб шукати назву події в довідковій системі, можна виділити його в правому списку (при цьому фокус введення повинен знаходитися саме в списку, а не у вікні програми) і натиснути клавішу F1.

Список досить великий, причому сенс деяких подій неважко зрозуміти по імені - наприклад, це відноситься до подій Activate і Load. Спочатку може здатися, що ви активізуєте форму для того, щоб відобразити її на екрані. Проте перед виконанням яких-небудь дій з формою необхідно завантажити її в пам'ять. Завантажену форму можна активізувати і деактивувати на власний розсуд. Звичайно, усе залежить від конкретної природи додатка, над яким ви працюєте, але у багатьох випадках можна обмежитися описаними далі подіями і обійтися без інших, менш поширених.

Подія Activate

Подія Activate частково нагадує подію Load, що розглядається нижче. Існує ще пара подій, з якими його іноді плутають, - Initialize і GotFocus. Ви можете подумати, що активізація і ініціалізація форми - одне і те ж, але насправді це не так. Форма зазвичай активізується після ініціалізації, і лише після цього їй передається фокус.

Між цими подіями існують досить тонкі відмінності, причому головне з них - порядок, в якому події відбуваються в додатку. Цей порядок виглядає так:

  • Initialize. Подія відбувається під час конфігурації і до завантаження форми.

  • Load. Подія відбувається після ініціалізації форми, але до її відображення на екрані. Додаючи код в процедуру події Load, ви можете настроїти зовнішній вигляд або поведінку форми.

  • Activate. Подія Activate відбувається після завантаження форми в пам'ять, але до того, як форма стане активною.

  • GotFocus. Ця подія, якщо воно взагалі відбувається, виникає при отриманні фокусу формою - коли форма завантажується або коли користувач звертається до неї, клацаючи мишею.

Після відкриття форми з перерахованих подій можуть статися лише GotFocus або Activate, хоча в окремих, дуже специфічних, випадках може статися і подія Initialize.

Воно відбувається у той момент, коли Visual Basic уперше дізнається про існування форми. У режимі виконання це трапляється відразу ж після команди Run > Start. За ним йде подія Load - воно відповідає моменту, коли Visual Basic завантажує форму з диска або з дискового кешу в пам'яті. Після завантаження форми і передачі їй фокусу (інакше кажучи, при активізації форми) відбувається подія Activate. Через лічені мілісекунди після нього слідує подія GotFocus.

Проте останнє може статися лише у тому випадку, якщо на формі немає жодного видимого елементу. Якщо ж на формі є присутній хоч би один видимий елемент, то фокус отримає він, а подія Got Focus форми буде пропущено - замість нього буде викликано подію Got Focus елементу. Отже, в нормальній ситуації при запуску додатка викликається подія Load першої форми, що відображується, за яким йде Activate. Зрозуміло, додаток може мати і інші вікна. Коли користувач або програма знову перемкнеться в перше вікно, знову буде викликано подію Activate, але цього разу без Load. Втім, подія Load все ж відбувається, якщо форма була вивантажена під час виконання програми.

Підведемо підсумки: при запуску додатка відбувається подія Load, а за ним йде подія Activate. Коли фокус переходить до іншої форми і знову повертається до першої (і якщо вона не була заздалегідь вивантажена), знову відбувається подія Activate, але вже без попередньої події Load.

Подія Deactivate

Подія Deactivate по сенсу протилежно Activate. Воно відбувається у тому випадку, якщо форма перестає бути активною. Залежно від вибраної колірної схеми Windows колір заголовка форми може змінитися (наприклад, стати світлішим).

Подія DragDrop

Подія відбувається у той момент, коли перетягуваний елемент «скидається» на форму. Якщо запустити програму Hello World і спробувати перетягнути кнопку, нічого не станеться. Щоб подія DragDrop стала можливою, передусім потрібний елемент, який можна перетягувати. Тема перетягання більш повно розглядається в уроці І, «Робота з мишею», але якщо вас долає цікавість, виконаєте наступні дії:

1. У вікні властивостей знайдіть властивість DragMode кнопки і задайте значення Automatic.

2. Існує і інший спосіб: виберіть значок для властивості Drag Icon, двічі клацнувши на нім у вікні властивостей.

3. Двічі клацніть на формі, щоб відкрити вікно програми.

4. Виберіть подію DragDrop із списку подій, що розкривається, у верхній частині вікна програми.

5. Нарешті, додайте наступний оператор в процедуру DragDrop форми:

Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)

Print «Елемент скинутий»

End Sub

ПРИМІТКА. Подія DragDrop відбувається лише у тому випадку, якщо у вас є об'єкт, відповідний для перетягання. Багато об'єктів зазвичай не годяться для цієї мети - наприклад, важко уявити собі перетягувану кнопку. Для інших об'єктів (графічних полів зі значками або рядків списків) перетягання дозволяється. Якщо ви слабо розбираєтеся в механізмі перетягання, перед вибором перетягуваних елементів варто розглянути приклади з інших додатків Windows.

Подія Load

Подія Load відбувається після події Initialize, але перед Activate при завантаженні форми в пам'ять з диска або з дискового кеша. Це дуже важлива подія, до того ж воно часто використовується. У нім зручно визначати деякі атрибути форми - наприклад, воно нерідко застосовується для вирівнювання форми по центру екрану.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]