C++. Приклад програмування події в C++ Builder




Приклад програмування події в C++ Builder

У даній статті описується приклад програмування події кліку на кнопці з виведенням відповідного повідомлення.

Умова задачі

Створити найпростішу програму, яка підраховує кількість кліків на кнопці типу TButton. Поточний результат виводити у компоненті TLabel.

Хід роботи

1. Завантажити C++ Builder.

Створити проект як VCL Forms Application. Зберегти проект під довільним іменем.

2. Розміщення компонента TButton на формі.
Компонент TButton розміщується на вкладці Standard (рис. 1).

05_01_00_006_01_

Рис. 1. Компонент TButton з панелі інструментів Tool Palette

З вкладки Standard палітри компонентів Tool Palette розмістити компонент TButton на формі додатку (рис. 2).
Автоматично створюється об’єкт-змінна з іменем Button1 (властивість Name).

05_01_00_006_02_

Рис. 2. Компонент TButton на формі додатку

 

3. Розміщення компонента TLabel на формі.

В палітрі Tool Palette знаходимо компонент TLabel (мітка), який представляє собою текст для виведення на екран (рис. 3).

05_01_00_006_03_

Рис. 3. Компонент TLabel на палітрі інструментів Tool Palette

Розміщуємо компонент TLabel на формі. Створюється новий об’єкт-змінна з іменем Label1.

Редагуємо розміри форми а також компоненти TLabel і TButton таким чином (приблизно) як показано на рисунку 4.

05_01_00_006_04_

Рис. 4. Редагування зовнішнього вигляду додатку






4. Налаштування властивостей компонент TForm, TLabel і TButton.
Змінюємо назву форми. Для цього:
– виділяємо форму Form1 (з допомогою “мишки”);
– в Object Inspector у властивості Caption встановлюємо значення “Підрахунок кількості кліків”.

Змінюємо текст у Label1. Для цього:
– виділяємо компонент Label1;
– в Object Inspector у властивості Caption вводимо текст “Кількість кліків = “.

Змінюємо текст у Button1. Для цього:
– виділяємо компонент Button1;
– в Object Inspector у властивості Caption вводимо текст “”.

Форма програми після налаштування матиме вигляд як показано на рис. 5.

05_01_00_006_05u

Рис. 5. Вигляд форми після налаштування

 

6. Програмування події кліку на кнопці.

Windows представляє величезний набір подій, які можуть оброблятися програмно. Одна з найбільш поширених подій є подія кліку на кнопці, яка називається OnClick. Назви усіх подій у Borland C++ Builder починаються з префікса “On”.

У нашому випадку програмуємо подію OnCick компонента Button1.
Для цього спершу потрібно виділити компонент Button1 і перейти на вкладку “Events” в Object Inspector. У списку доступних подій знайти подію “OnClick” (рис. 6).

05_01_00_006_06u

Рис. 6. Подія OnClick компонента Button1

Після цього потрібно викликати програмний код процедури обробки цієї події.
Для цього є два способи:
– подвійний клік “мишкою” в області рядка OnClick в Object Inspector;
– подвійний клік “мишкою” в області компонента (кнопки) Button1 на формі (тільки для TButton).

У результаті вибору одного з двох методів відкриється вікно редактора коду, лістинг якого наведено нижче.

void __fastcall TForm1::Button1Click(TObject *Sender)
{

}

Між фігурними дужками потрібно вписати наш код обробки події. Впишемо свій код у п.9 цієї статті. Спочатку опишемо внутрішню змінну (п.7).

7. Додавання змінної k

Згідно з умовою задачі, потрібно вести облік кількості кліків “мишкою” на кнопці Button1. Для цього у програмному коді вводимо додаткову змінну k в описі класу TForm1.
Клас TForm1 автоматично був створений системою Borland C++ Builder. Цьому класу відповідає основна форма програми Form1.

Опис класу розміщується в модулі “Unit1.h”. Unit1 – назва модуля файлу яка вказувалась при збереженні проекту. Перехід до модуля (файлу) “Unit1.h” відображено на рис. 7.

05_01_00_006_07_

Рис. 7. Модуль Unit1.h

Лістинг програмного коду модуля наступний.

//-----------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//-----------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//-----------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
 TButton *Button1;
 TLabel *Label1;
 void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public: // User declarations
 __fastcall TForm1(TComponent* Owner);
};
//------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//------------------------------------------------------
#endif

Між словами “private:” і “public:” вписуємо змінну k цілого типу. Фрагмент коду має вигляд:

...
private: // User declarations
 int k;
public: // User declarations
...

У вищенаведеному лістингу змінна k описується в класі форми як приватна змінна.

 

8. Програмування події активізації форми OnActivate

Для початкового занулення значення змінної k програмуємо подію активізації форми OnActivate. Ця подія генерується системою одразу після запуску додатку. Вона використовується для початкової ініціалізації значень внутрішніх змінних форми.

Виділяємо форму, вибираємо вкладку “Events”. На рис. 8. зображено розміщення події на вкладці “Events” в Object Inspector.

05_01_00_006_08_

Рис. 8. Подія OnActivate форми Form1

Викликаємо лістинг процедури обробки події OnActivate з допомогою подвійного кліку “мишкою” в рядку з назвою події. Код лістингу має наступний вигляд.

void __fastcall TForm1::FormActivate(TObject *Sender)
{
  // занулення лічильника
  k = 0; 
  // вивід повідомлення
  Label1->Caption = "Кількість кліків = " + IntToStr(k);
}

 

9. Програмування коду обробки події на кнопці Button1

Викликаємо програмний код події OnClick компонента Button1 (див. п.6). Формуємо лістинг коду наступним чином.

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  k++;
  Label1->Caption = "Кількість кліків = " + IntToStr(k);
}

У наведеному лістингу значення змінної k збільшується на 1 кожен раз як користувач натисне на кнопці Button1.
Функція IntToStr(k) переводить числове значення k у рядкове значення для представлення його на формі.

Після цього можна запускати проект на виконання.


Подібні теми: