Інформація про новину
  • Переглядів: 4886
  • Дата: 19-10-2021, 19:47
19-10-2021, 19:47

6.3. Кнопка в Lazarus

Категорія: Інформатика





Попередня сторінка:  6.2. Події. Обробники подій
Наступна сторінка:   6.4. Напис в Lazarus

1. Які властивості вікна ви знаєте? Як змінити значення його властивостей до початку виконання проекту й під час його виконання?

2. Які події можуть відбуватися з вікном? У чому полягає кожна з них?

3. Що таке обробник події? Як його створити? Як його виконати?

Властивості кнопки

Одним з компонентів (елементів керування), який можна використати в проектах, є кнопка.

Для тих, хто вивчає Pascal

Щоб розмістити кнопку на формі, потрібно підвести вказівник до її зображення

на вкладці Standard (англ. standard - стандарт) вікна середовища Lazarus і двічі клацнути ліву кнопку миші. Після цього кнопка з’явиться у верхній лівій частині форми (мал. 6.24), а її ім’я додасться до списку компонентів проекту в полі Компоненти вікна Інспектор об’єктів. За потреби кнопку можна перетягнути в будь-яке інше місце форми.

Якщо вибрати кнопку на формі або вибрати її ім’я в полі Компоненти вікна Інспектор об’єктів, то на вкладці Властивості цього вікна відобразиться список властивостей кнопки та їх значень (мал. 6.24). Як і для форми, значення деяких властивостей кнопки встановлені за замовчуванням і їх можна змінювати. Для

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

У кнопки, як і у форми, є властивості Name, Caption, Height, Width, Top, Left, Color.

Значення властивості Name визначає ім’я кнопки як об’єкта. Значення властивості Caption визначає текст на кнопці. Значення властивостей Height і Width визначають висоту й ширину кнопки. Значення властивостей Тор і Left визначають відстані верхньої та лівої меж кнопки від відповідних меж форми, на якій вона розміщена, а не від відповідних меж екрана, як для форми.

Значення всіх цих властивостей кнопки можна змінити на вкладці Властивості вікна Інспектор об’єктів до запуску проекту на виконання.

Значення всіх цих властивостей також можна змінити командами присвоювання під час виконання проекту. Наприклад,

Значення властивості Color для кнопки, яке встановлюється за замовчуванням, змінити не можна.

Розглянемо ще дві властивості, які має як кнопка, так і форма:

• Enabled (англ. enabled - доступний) - її значення визначає, чи доступний об’єкт для операцій над ним. Ця властивість може набувати лише одне з двох значень: True (англ. true - істина, правда) - об’єкт доступний або False (англ. fe/se-хиба, неправда) - об’єкт недоступний; недоступна кнопка

виглядає так:

• Visible (англ. visible - видимий) - її значення визначає, чи видимий даний об’єкт у вікні. Ця властивість може набувати теж лише одне з двох значень: True - об’єкт видимий або False - об’єкт невидимий.

Аля тих, хто вивчає Python

Щоб розмістити кнопку у вікні, потрібно:

1. Створити новий об’єкт типу Button, пов’язати його зі змінною, яка визначатиме ім’я об’єкта.

2. Установити значення властивостей кнопки або залишити їх за замовчуванням.

3. Розмістити створений об’єкт у вікні.

Для створення кнопки та пов’язування її зі змінною використовують команду вигляду:

У першому випадку буде створено кнопку зі значеннями властивостей висота, ширина і колір, які установлено за замовчуванням, без напису на ній. У другому випадку буде створено кнопку, значення властивостей якої задано в цій команді. У дужках через кому вказують пари <властивість> = <значення>. Для кнопки можуть бути встановлені значення таких властивостей:

• text - текст на кнопці;

• width - ширина кнопки (кількість символів, які можуть бути розміщені поруч по горизонталі);

• height - висота кнопки (кількість символів, які можуть бути розміщені один під одним по вертикалі);

• bg - колір фону (значенням може бути назва кольору англійською);

• fg - колір символів тексту;

• font - шрифт символів тексту на кнопці (значення може містити назву шрифту, розмір символів і накреслення);

• state - стан кнопки (normal - звичайний, disable - недоступний)

та інші.

Наприклад, кнопка з іменем button з текстом Змінити завширшки 15 символів може бути створена командою:

button = Button(text = ‘Змінити’, width = 15).

Для розміщення кнопки у вікні можуть бути використані такі методи:

• раск() - кнопка автоматично розміщується під рядком заголовка вікна з однаковими відступами від лівої та правої меж вікна. Якщо у вікні розміщується кілька кнопок, то вони будуть відображатися одна під одною без відступів між ними. Якщо потрібно розмістити кнопку з деяким відступом від рядка заголовка або від попередньої кнопки, то в дужках можна указати цей відступ у пікселях як значення властивості pady. Наприклад, після виконання команди button.pack(pady = 20) кнопку буде розміщено з відступом 20 пікселів від верхньої межі вікна або від попередньої кнопки;

• ріасе(х = <відступ від лівої межі вікна>, у = «відступ від верхньої межі вікна>) - верхня ліва вершина кнопки розміщується в точці вікна із заданими координатами х та у. Наприклад, після виконання команди button.ріасе(х = 200, у = 100) верхня ліва вершина кнопки буде розміщена в точці вікна з координатами (200, 100)

та інші.

Під час виконання проекту може виникнути потреба зробити кнопку невидимою. Для цього, залежно від методу розміщення кнопки, можна використати методи pack_forget() або place_forget(). Щоб зробити кнопку знову видимою, слід застосувати метод раск() або ріасе().

На малюнку 6.25 наведено текст проекту зі створення та розміщення кнопки

у вікні та результат його виконання.

Обробники подій для кнопки

Аля тих, хто вивчає Pascal

Якщо вибрати кнопку, то на вкладці Події вікна Інспектор об’єктів можна, як і для форми, вибрати подію і створити для неї в Редакторі тексту заготовку процедури - обробника цієї події. До цієї процедури можна ввести команди змінення значень властивостей як кнопки, так і форми.

На малюнку 6.26 наведено приклад обробника події Click для кнопки - процедури з іменем TForm1.Button1Click, який містить команди:

• установлення відступу 150 пікселів лівої межі кнопки від лівої межі вікна;

• збільшення на 50 пікселів відступу верхньої межі кнопки від верхньої межі вікна;

• виведення на кнопці вказаного тексту;

• установлення для кнопки режиму Недоступна.

Аля тих, хто вивчає Python

Пов’язати з кнопкою обробник будь-якої події можна так само, як з вікном, використовуючи метод bind(). Наприклад, на малюнку 6.27 наведено приклад обробника події Click для кнопки, яка містить команду встановлення жовтого кольору вікна.

Для кнопки подією за замовчуванням є клацання лівої кнопки миші. Тому пов’язати з кнопкою метод опрацювання саме цієї події можна простіше:

• під час створення кнопки вказати ім’я відповідного обробника події як значення атрибуту command;

• обробник події з указаним іменем описати перед створенням кнопки; у заголовку не потрібно вказувати посилання на подію, що відбулася, - event.

На малюнку 6.28 наведено приклад обробника події Click для кнопки - процедури з іменем click(), яка містить команди:

• установлення для кнопки червоного кольору фону;

• установлення шрифту Aria! розміром 14 пікселів;

• виведення на кнопці вказаного тексту;

• установлення для кнопки стану недоступна.

Працюємо з комп'ютером

Виконайте тренувальні завдання за посиланням

https://cutt.ly/ghdrpzl

або QR-кодом.

Найважливіше в цьому пункті

Аля тих, хто вивчає Pascal

Щоб розмістити кнопку на формі, потрібно підвести вказівник до її зображення

на вкладці Standard вікна середовища Lazarus і двічі клацнути ліву кнопку

миші.

У кнопки, як і у форми, є властивості Name, Caption, Height, Width, Top, Left, Color.

Значення властивості Name визначає ім’я кнопки як об’єкта. Значення властивості Caption визначає текст на кнопці. Значення властивостей Height і Width визначають висоту й ширину кнопки. Значення властивостей Тор і Left визначають відстані верхньої і лівої меж кнопки від відповідних меж форми, на якій вона розміщена, а не від відповідних меж екрана, як для форми.

Значення всіх цих властивостей кнопки можна змінити до запуску проекту на виконання на вкладці Властивості вікна Інспектор об’єктів. Значення деяких з них можна змінити перетягуванням кнопки або зміненням її розмірів, використовуючи маркери на її межах.

Значення всіх цих властивостей також можна змінити командами присвоювання під час виконання проекту. Наприклад, Buttonl.Width := 100, Buttonl.Left := Buttonl.Left + 200, Buttonl.Caption := ‘Виконати’.

Значення властивості Color для кнопки, яке встановлюється за замовчуванням, змінити не можна.

Розглянемо ще дві властивості, які має як кнопка, так і форма:

• Enabled - її значення визначає, чи доступний об’єкт для операцій над ним. Ця властивість може набувати лише одне з двох значень: True - об’єкт доступний або False - об’єкт недоступний; недоступна кнопка виглядає так:

• Visible - її значення визначає, чи видимий даний об’єкт у вікні. Ця властивість може набувати теж лише одне з двох значень: True - об’єкт видимий або False - об’єкт невидимий.

Аля тих, хто вивчає Python

Щоб розмістити кнопку у вікні, потрібно створити новий об’єкт типу Button, пов’язати його зі змінною, що визначатиме ім’я кнопки, установити значення властивостей кнопки, розмістити створений об’єкту вікні.

Для створення кнопки та пов’язування її зі змінною використовують команду вигляду <ім’я_кнопки> = Button().

Під час створення кнопки можуть бути встановлені значення її властивостей. Для цього потрібно ввести в дужках через кому пари <властивість> = <значен-ня>. Для кнопки можуть бути встановлені значення властивостей text, width, height, bg, fg, font, state та ін.

Для розміщення кнопки у вікні можуть бути використані методи раск() або place().

Пов’язати з кнопкою обробник будь-якої події можна так само, як з вікном, використовуючи метод bind().

Щоб пов’язати з кнопкою метод опрацювання події Click, можна під час створення кнопки вказати ім’я відповідної процедури - обробника події як значення атрибуту command. У заголовку цієї процедури не потрібно вводити ключове слово event.

Лайте вілповілі на запитання

Аля тих, хто вивчає Pascal

1°. Як розмістити кнопку на формі?

2°. Які властивості кнопки ви знаєте? Що визначає кожна з них?

З*. Чим відрізняється властивість Color для кнопки і для форми?

4*. Чим відрізняється властивість Caption для кнопки і для форми?

5*. Чим відрізняються властивості Тор і Left для кнопки і для форми?

6*. Які значення можуть набувати властивості Enabled і Visible? Що визначає кожне із цих значень для кожної із цих властивостей?

Аля тих, хто вивчає Python

1 *. Як створити кнопку?

2°. Які властивості кнопки ви знаєте? Що визначає кожна з них?

З*. Як задати значення властивостей кнопки?

4*. Як розмістити кнопку у вікні?

5°. Якими способами можна призначити для кнопки обробники подій? 6*. Як призначити для кнопки обробник події Click?

Виконайтезавлання

1 °. Створіть проект, у якому в результаті настання події Click для кнопки її розміри стануть 40 х ЗО пікселів

ширина - ЗО символів, висота - 3 символи) і текст на кнопці зміниться на назву вашого населеного пункту. Збережіть проект у папці з іменем Завдання 6.3.1, створеній у вашій папці.

2*. Створіть проект, у якому в результаті настання події KeyPress для кнопки

її розміри стануть 20 х 40 пікселів

ширина - 20 символів, висота -

4 символи) і текст на кнопці зміниться на ваше прізвище. Збережіть проект у папці з іменем Завдання 6.3.2, створеній у вашій папці.

З*. Створіть проект, у якому в результаті настання події MouseMove для кнопки зміниться текст на кнопці та збільшиться її відступ верхньої межі на 20 пікселів. Збережіть проект у папці з іменем Завдання 6.3.3, створеній у вашій папці.

4е. Створіть проект, у якому в результаті настання події Click для кнопки зміняться її розміри і зменшиться відступ її лівої межі на 20 пікселів. Збережіть проект у папці з іменем Завдання 6.3.4, створеній у вашій папці.

5*. Створіть проект, у якому в результаті настання події Click для кнопки її розміри стануть 50 х 50 пікселів

ширина - 50 символів, висота - 5 символів) і текст на кнопці зміниться на Мій проект, а в результаті настання події MouseMove для кнопки кнопка переміститься на ЗО пікселів управо та

на 40 пікселів униз і стане недоступною

установиться жовтий колір

фону кнопки та її стан - недоступний). Збережіть проект у папці з іменем Завдання 6.3.5, створеній у вашій папці.

6*. Створіть проект розміщення у вікні трьох кнопок. Установіть такі значення їх властивостей, щоб на початку виконання проекту перша кнопка була видима і доступна, друга - видима і недоступна, третя - невидима і недоступна. Для кожної кнопки створіть обробник події Click, щоб:

1) вибір першої кнопки робив її невидимою і недоступною, другу кнопку -видимою і доступною, третю кнопку - видимою і недоступною;

2) вибір другої кнопки робив її невидимою і недоступною, третю кнопку -видимою і доступною, першу кнопку - видимою і недоступною;

3) вибір третьої кнопки робив її невидимою і недоступною, першу кнопку -видимою і доступною, другу кнопку - видимою і недоступною.

Збережіть проект у папці з іменем Завдання 6.3.6, створеній у вашій папці.

 

 

Це матеріал з підручника Інформатика 8 клас Ривкінд (2021)

 




Попередня сторінка:  6.2. Події. Обробники подій
Наступна сторінка:   6.4. Напис в Lazarus



^