Приклад програмування події в C++ Builder
У даній статті описується приклад програмування події кліку на кнопці з виведенням відповідного повідомлення.
Умова задачі
Створити найпростішу програму, яка підраховує кількість кліків на кнопці типу TButton. Поточний результат виводити у компоненті TLabel.
Хід роботи
1. Завантажити C++ Builder.
Створити проект як VCL Forms Application. Зберегти проект під довільним іменем.
2. Розміщення компонента TButton на формі.
Компонент TButton розміщується на вкладці Standard (рис. 1).
Рис. 1. Компонент TButton з панелі інструментів Tool Palette
З вкладки Standard палітри компонентів Tool Palette розмістити компонент TButton на формі додатку (рис. 2).
Автоматично створюється об’єкт-змінна з іменем Button1 (властивість Name).
Рис. 2. Компонент TButton на формі додатку
3. Розміщення компонента TLabel на формі.
В палітрі Tool Palette знаходимо компонент TLabel (мітка), який представляє собою текст для виведення на екран (рис. 3).
Рис. 3. Компонент TLabel на палітрі інструментів Tool Palette
Розміщуємо компонент TLabel на формі. Створюється новий об’єкт-змінна з іменем Label1.
Редагуємо розміри форми а також компоненти TLabel і TButton таким чином (приблизно) як показано на рисунку 4.
Рис. 4. Редагування зовнішнього вигляду додатку
4. Налаштування властивостей компонент TForm, TLabel і TButton.
Змінюємо назву форми. Для цього:
– виділяємо форму Form1 (з допомогою “мишки”);
– в Object Inspector у властивості Caption встановлюємо значення “Підрахунок кількості кліків”.
Змінюємо текст у Label1. Для цього:
– виділяємо компонент Label1;
– в Object Inspector у властивості Caption вводимо текст “Кількість кліків = “.
Змінюємо текст у Button1. Для цього:
– виділяємо компонент Button1;
– в Object Inspector у властивості Caption вводимо текст “”.
Форма програми після налаштування матиме вигляд як показано на рис. 5.
Рис. 5. Вигляд форми після налаштування
6. Програмування події кліку на кнопці.
Windows представляє величезний набір подій, які можуть оброблятися програмно. Одна з найбільш поширених подій є подія кліку на кнопці, яка називається OnClick. Назви усіх подій у Borland C++ Builder починаються з префікса “On”.
У нашому випадку програмуємо подію OnCick компонента Button1.
Для цього спершу потрібно виділити компонент Button1 і перейти на вкладку “Events” в Object Inspector. У списку доступних подій знайти подію “OnClick” (рис. 6).
Рис. 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.
Рис. 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.
Рис. 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 у рядкове значення для представлення його на формі.
Після цього можна запускати проект на виконання.
Подібні теми:
- 001 – Приклад програмування події в Delphi.
- 005 – Приклад програмування події в C#.
- 002 – Приклад створення діалогового вікна в MS Visual Studio 2010 – C++.