вівторок, 22 листопада 2016 р.

Lazarus. Урок 3. Реагуємо на події

Привіт. Сьогодні продовжимо знайомство з можливостями візуального програмування і на черзі у нас поняття "подія".
Як ми вже знаємо, кожен об'єкт має властивості. Властивості в свою чергу характеризуються значенням. Значення властивостей ми можемо змінювати. Але окрім цього, об'єкти можуть реагувати на якусь подію.

Події у житті об’єктів

Металодетектор реагує коли повз нього проходить металевий предмет.
Автомобіль реагує на поворот ключа в замку запалення.
Учень реагує коли чує дзвінок з уроку чи на урок.

Кожен об’єкт реагує на якісь відомі йому події.

На які ж події реагує форма програми (Form1)? У цьому нам знову допоможе Інспектор Об’єктів. На вкладці Події у лівій колонці перелічені події на які форма може реагувати.


Події на які може реагувати форма.

На малюнку вище ми бачимо далеко не повний перелік подій, але там представлена подія, на яку реагує форма в першу чергу - OnCreate.
Ця подія виникає в момент, коли форма "народжується". Вище по списку можна побачити подію OnClose, яка виникає в момент, коли форма закривається. А якщо по формі клацнути (клікнути) основною кнопкою миші, то для форми це буде подія OnClick.


Обробник події

Але найцікавіше попереду... 
Що робить учень, коли продзвенів дзвінок з з уроку?
  • Записує домашнє завдання;
  • Виходить з класу;
  • Готується до наступного уроку;
  • Спілкується з друзями; 
Як реагує металодетектор коли повз нього проносять металевий предмет?
Як реагує ручка, коли ми починаємо стержнем "возити" на папері?

Що ж буде коли для об’єкта Form1 відбулася подія? Нічого. Але це нічого буде до тих пір, доки ми не створимо для нього обробник події.


Для того, щоб користувач міг побачити реакцію об’єкта на подію, 
потрібно створити для нього ОБРОБНИК ПОДІЇ.


Обробник події - це маленька програма в середині основної програми у якій мовою програмування записані дії, що буде виконувати об’єкт у випадку настання цієї події.

Як створити Обробник події?

Якщо повернутись до малюнка вгорі то ми побачимо, що праворуч від назви події знаходиться текстове поле у якому можна ввести якийсь текст. Цей текст буде означати ім’я обробника події. 
Створити подію можна двома способами:
1. Вам достатньо придумати назву (латинськими літерами без пробілів), ввести її в поле праворуч від назви події та натиснути Enter.
2. Двічі клацнути основною (лівою) кнопкою миші в полі праворуч від назви події і Lazarus сам придумає назву для обробника.

Оскільки обробник тексту - це текст записаний мовою програмування, то логічно припустити, що існуватиме він у вікні Редактора тексту.

Зробіть активним вікно редактора тексту і подивіться на його вміст... :-). Все зрозуміло? Не лякайтеся. Згодом цей текст не буде таким страшним. А тепер давайте скористаємось способом №2 і створимо обробник для події OnCreate. 
  1. Перейдіть у вікно Інспектора Об’єктів;
  2. Відккрийте вкладку Події;
  3. Знайдіть у лівій колонці подію OnCreate;
  4. Двічі клацніть у полі праворуч від назви OnCreate;
Відразу після подвійного кліку у вас стане активним вікно Редактора тексту. Зверніть увагу, що до коду який ви бачили раніше додасться код (виділено зеленим). Та (виділена зеленим) частина коду, що знаходиться нижче і є обробником події для нашої форми. 
Процедура обробник події для об’єкта Form1 має назву FormCreate

Зверніть увагу, нижня частина коду, що виділена зеленим і є обробник події для події OnCreate.

Завдання.
На що реагує форма, коли реагує на подію  OnClose?
Створіть обробник для події OnClick з ім'ям iclicktoform1.

Для допитливих. 
Де зберігається інформація про те яке ім'я має обробник тієї чи іншої події для об'єкта?