Зміна значень властивостей в середовищі Lazarus. Реакція об'єктів на події.
Цілі:
Тип уроку: урок засвоєння нових знань.
Хід уроку
І. Організаційний етап
ІІ. Актуалізація опорних знань
ІІІ. Мотивація навчальної діяльності
IV. Вивчення нового матеріалу
Як змінити значення властивостей об’єктів у середовищі програмування Lazarus?
Усі елементи управління, які можна розміщувати на формі проекту, як і сама форма, є об’єктами. Ви вже вмієте встановлювати властивості об’єкта, зокрема напису та форми, статичним способом. Це означає, що значення властивостей об’єктів встановлюються до запуску програми на виконання. Користувач спочатку виділяє у вікні дизайнера форми об’єкт, значення властивості якого необхідно змінити, а потім у вікні Інспектор об’єктів у таблиці властивостей знаходить назву відповідної властивості та праворуч від цієї назви вибирає або вводить із клавіатури потрібне значення.
Для зміни значень властивостей можна застосувати й інший спосіб — динамічний, коли значення властивостей можна змінити в процесі виконання програми за допомогою команди надання значень — присвоювання. Мовою програмування Free Pascal, яка підтримується в середовищі Lazarus, таку команду позначають «:=». Зліва від такого оператора записується ім’я властивості, а справа — значення, якого необхідно надати. Такі команди записують у програмному коді, і значення властивості буде змінюватися тільки після запуску програми на виконання. Для того щоб при написанні програмного коду вказати, що значення властивості слід змінити саме для обраного об’єкта, необхідно, крім назви властивості в команді про надання значення, ще вказувати ім’я об’єкта, до якого такі зміни будуть застосовані. Якщо проект складається з кількох екранних форм, слід вказати також ім’я форми, на якій розміщений такий об’єкт. Тому для звернення до властивостей об’єктів у програмному коді використовують такий спосіб запису: Ім'я форми. Ім'я об'єкта. Ім'я властивості.
Якщо проект містить лише одну форму або розглядаються об’єкти поточної форми, то вказувати ім’я форми не обов’язково.
Так, наприклад, щоб у проекті, який містить лише одну форму, об’єкт Labell (Напис1) відображався на формі, необхідно його властивості Visible (Видимість) присвоїти значення True. Для цього в коді програми можна записати команду:
Label1.Visible := True;
Властивість Visible (Видимість) може набувати одного з двох значень: True — тоді об’єкт буде відображено, і False — у цьому разі отримаємо невидимий, або «прихований» об’єкт.
У вікні редактора коду середовища програмування Lazarus після введення імені об’єкта і крапки відкривається список доступних властивостей та дій, які можна описати для об’єкта. Щоб додати в код ім’я потрібної властивості, достатньо обрати її мишею зі списку.
Ось ще один приклад виконання команди
Forml.Color := clGreen
встановить зеленим колір фону форми. А виконання команди
Forml.Top := Forml.Top + 50
збільшить поточний відступ верхньої межі вікна від верхньої межі екрана на 50 пікселів. Під час виконання останньої команди спочатку до поточного значення властивості Тор форми буде додано число 50, після чого отримане число стане новим значенням цієї властивості форми.
Командою присвоювання Forml.Caption := ’Змінення значень властивостей форми’ можна встановити вказаний у лапках текст у рядку заголовка форми, а командою Forml.Left := 300 - встановити відступ 300 пікселів лівої межі вікна від лівої межі екрана.
Як об’єкти можуть «реагувати» на події?
Під час виконання програми об’єкти можуть «реагувати» на деякі події, зокрема, дії користувача: клацання мишею на об’єкті, натиснення на клавіатурі деякої клавіші чи комбінації клавіш, вибір деякої вказівки меню, зміну розмірів вікна тощо. Тобто в результаті настання деякої події, що передбачена для об’єкта, виконується певний набір команд.
Наприклад, під час роботи з офісними програмами при першому збереженні файла користувач може обрати на панелі інструментів кнопку Зберегти, або натиснути на клавіатурі комбінацію клавіш Ctrl + S, або в меню Файл обрати вказівку Зберегти. При настанні будь-якої з цих подій буде виконуватися дія: відкриється вікно Зберегти як, у якому можна обрати ім’я файла та папку, до якої цей файл слід зберегти.
Для середовища Lazarus також можна використовувати деякі події :
З будь-якою подією, яка може відбутися з формою, можна пов’язати фрагмент програми, який буде виконуватися одразу після настання цієї події. Такий фрагмент програми називають обробником події. Обробник події, пов’язаний з певним об’єктом, називають методом цього об’єкта.
Середовище Lazarus за замовчуванням створює обробник події як процедуру. Процедура - це окремо виділена частина програми, яка має своє ім’я і яку можна за цим іменем запустити на виконання.
Виконання процедури також є подією. Якщо процедура виконується в результаті настання певної події з формою, наприклад події Click, то подію самого виконання цієї процедури називають OnClick (англ. on - на).
Наприклад, якщо потрібно пов’язати деяку процедуру з подією Click для форми, то слід:
У результаті виконання цього алгоритму в полі OnClick на вкладці Події з’являється текст FormClick (англ. Form Click - клацання форми), а у вікні редактора тексту проекту на вкладці Unitl з’являється заготовка для тексту процедури з іменем TForml.FormClick, команди якої й будуть виконуватися при настанні події Click з формою.
Команди процедури записуються між двома словами begin (англ. begin - початок) і end (англ. end - кінець). Звертаємо вашу увагу, що begin і end - це не команди, ці слова відіграють роль відповідно відкриваючої та закриваючої дужки, що визначають початок і закінчення процедури. Ці слова часто називають операторними дужками.
Після слова end у кінці процедури повинна стояти крапка з комою (;). Кожна команда процедури також має закінчуватися крапкою з комою (;)
Список усіх доступних подій, які можуть опрацьовуватися, для кожного об’єкта в середовищі програмування Lazarus подається в таблиці на вкладці Події вікна Інспектор об’єктів.
Список подій, які найчастіше застосовують при складанні проектів з обраним об’єктом, відображається в таблиці на вкладці Улюблені.
Набір команд, який використовується для опису реакції на конкретну подію й записується за правилами мови програмування, називається процедурою. Процедура розпочинається зі слова procedure, обов’язково містить пару службових слів, які обмежують список команд у процедурі: begin — початок програмного коду, end — кінець.
V. Фізкультхвилинка. Інструктаж з ТБ
VI. Засвоєння нових знань, формування вмінь
Практичні завдання.
Вправа. Створюємо програму, яка реагує на події
Завдання:
Створіть форму, яка змінюватиме свій колір в залежності від дій користувача:
VIІ. Підсумки уроку
Рефлексія
VІІI. Домашнє завдання
Підручник § 18 п. 1-2 ст. 120-122
ІХ. Оцінювання роботи учнів