Побудова компоненти у Builder C

Завдання на курсову роботу

1 Розробка компоненти

2 Завдання початкових умов

3 Завдання властивостей

4 Перевизначені методи базового класу

5 Перевизначення методу CreateWnd()

6 Перевизначення методу Paint()

7 Перевизначення методу WndProc(TMessage& Message)

8 Перевизначенням методу CanResize (int &NewWidth, int &NewHeight)

9 Створення подій

10 Тестування компоненти

11 Реєстрація компоненти

12 Інсталяція компоненти

13 Перевірка готової компоненти

Список використаної літератури

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

компоненти

Форми є основою програм C++ Builder. Створення інтерфейсу програми полягає в додаванні у вікно форми елементів об'єктів C++ Builder, званих компонентами. Компоненти C++ Builder розташовуються на палітрі компонентів, виконаної як багатосторінкового блокнота. Важлива риса C++ Builder полягає в тому, що він дозволяє створювати власні компоненти та налаштовувати палітру компонентів, а також створювати різні версії палітри компонентів для різних проектів.

Компоненти поділяються на видимі (візуальні) та невидимі (невізуальні). Візуальні компоненти з'являються під час виконання так само, як і під час проектування. Прикладами є кнопки та редаговані поля. p align="justify"> Невізуальні компоненти з'являються під час проектування як піктограми на формі. Вони ніколи не видно під час виконання, але мають певну функціональність(наприклад, забезпечують доступ до даних, викликають стандартні діалоги Windows та ін.)

Для додавання компонента у форму можна вибрати мишею потрібний компонент у палітрі та клацнути лівою клавішею миші у потрібному місці проектованої форми. Компонент з'явиться на формі і далі його можна переміщати, змінювати розміри та інші характеристики.

Кожен компонент C++ Builder має три різновиди характеристик: властивості, події та методи.

Якщо вибрати компонент із палітри та додати його до форми, інспектор об'єктів автоматично покаже властивості та події, які можуть бути використані з цим компонентом. У верхній частині інспектора об'єктів є список, що дозволяє вибирати потрібний об'єкт з наявних на формі.

Процес розробки компонентиTOsnovaпроходить через виконання наступних етапів:

1. Створення модуля для нових компонентів.

2. Спадкування похідного класу від існуючого базового компонентного класу.

3. Додавання необхідних якостей, подій та методів.

4. Реєстрація компоненти у C++Builder.

Для створення нового компонента необхідно розпочати новий проект. Але спочатку необхідно вирішити, від якого базового класу буде породжено наш компонент.

Мені бачиться, що найбільш правильним рішенням буде вибір як базовий клас TCustomControl. TCustomControl був обраний тому, що для повноцінної роботи нашому компоненту необхідні властивості Handle (дескриптор вікна для отримання повідомлень таймера) та Canvas (полотно для виведення тексту). TCustomControl має обидві властивості, за рахунок чого він є ідеальним вибором базового класу.

Також нам знадобиться створити клас TMarshrut для малювання маршруту руху кульки і клас ТShar, що малює саму кульку. Обидва ці класи повинніТільки вміти малювати себе, тому як базовий клас вибираємо TCustomGraphic.

Тепер можна приступати до створення компонентів. Відкриваємо вкладку Component та вибираємо NewComponent. У вікні вибираємо базовий клас (Ancestortype) - TCustomControl, вводимо ім'я свого класу (ClassName) -TOsnova, вибираємо вкладку палітри компонентів, на яку компонента буде встановлена ​​(Palettepage) -Samples, і шлях, де будуть зберігатися файли компоненти. Після натискання кнопки ОК C++ Builder створить для нашої компоненти новий модуль і збереже його у вказаному місці.

побудова

Аналогічно створюємо два класи TMarshrut і ТShar. Для спільної роботи трьох класів необхідно підключити файли h за допомогою директиви #include.

Тепер розглянемо створені нами класи. TMarshrut і ТShar повинні вміти малювати себе, тому достатньо перевизначити віртуальний метод базового класу Paint():

Перевизначений метод Paint() цих класів повинен включати код їх малювання. Нижче показано вихідний код методу Paint() класу ТShar:

void __fastcall TShar::Paint()

Вихідний код методу Paint() класу TMarshrut