Реакції на події - студопедія

Якщо прибрати оператор

то мітка Label1 ніколи не дізнається про те, що прийшла пора промальовувати себе на екрані і її текст не буде видно. Навпаки, зміна властивості Parent підключає мітку до списку дочірніх елементів форми, і віконна функція форми звернеться до потрібного методу мітки, щоб змусити її з'явитися на екрані в момент появи самої форми.

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

Подія-це властивість процедурного типу. призначене для створення користувальницької реакції на ті чи інші вхідні дії:

Property OnMyEvent: TMyEvent read FOnMyEvent

У Delphi прийнято називати подіями спеціальні властивості процедурного типу. яким в якості значень присвоюються імена методів, де описана реакція на подію. Такі методи називаються обработчиками подій.

Всі події Delphi прийнято випереджати префіксом On. Наприклад, OnClick -подія після клацання мишею, OnKeyPress -при натисканні будь-якої клавіші клавіатури, OnCreate -при створенні компонента, OnMouseMove- при переміщенні миші.

Клацнувши в інспекторові об'єктів на сторінці Events в поле потрібного події, ви отримаєте в програмі заготовку методу потрібного типу. При цьому ім'я методу буде складатися з імені поточного компонента й імені події (без префікса on), ставитися він буде до поточної формі. Наприклад, нехай на формі Form1 є кнопка Button1. тоді для обробки клацання миші на кнопці (подія OnClick) буде створена заготівля методу:

Додатки Delphi є інтерактивними системами, в яких для організації взаємодії між користувачем і програмою використовують методи, керовані подіями. Додаток Delphi реагує на подія - сигнали від миші, клавіатури і системні події (наприклад, в результаті порушення системних обмежень). Різні об'єкти можуть реагувати на різні сукупності подій.

Для організації реакції на події можна:

1. Проігнорувати подія. тобто Хіба ж не писав процедури для реакції на цю подію, при цьому поведінка об'єкта визначається за замовчуванням;

2. Перехопити подія. для цього треба написати текст процедури - обробника подію-ку, при цьому можна модифікувати або змінити поведінку об'єкта, що задається по промовчу-нію. Це може бути, наприклад, зміна виду курсора при попаданні в певну область на екрані або зміна доступності компонента за допомогою властивості Enabled.

Наприклад. послідовність дій при перехоплювання події OnClick - клацання миші для керуючої кнопки Button1. полягає в наступному:

1. Виникає подія натискання на кнопку з ім'ям Button1. для цього користувач уста-новити курсор на кнопку і натисне ліву кнопку миші (тобто здійснить клацання миші по кнопці Button1), виникне подія на ім'я OnClick - клацання на кнопці;

2. Об'єкт Button1 перехоплює цю подію, так як для нього є обробник подію-ку;

3.Delphi шукає процедуру з ім'ям, відповідним імені задіяного об'єкта (Button1) і імені події (OnClick), тобто процедуру Button1Click.

Ім'я процедури обробника події складається з Buttonl1 - імені об'єкта, на якому відбулася подія, і Click - імені події (без префікса On).

Розробник програми за допомогою Delphi повинен писати тільки обробники подій. Перехоплення подій і організацію виклику обробників подій реалізує програма Delphi.

Схожі статті