2.1. Проект. Основні принципи
Один із можливих проектів - сконвертувати текстовий симулятор на «щось» із зручним GUI інтерфейсом (цей симулятор використовується для вивчення архітектури комп'ютерів та мови асемблер). Для такого проекту було б непогано мати індикатор для відображення нульових або одиничних значень, і хоча зручно було б скористатися стандартним компонентом, жоден з них не має таких властивостей.
Перше, з чого слід почати при написанні компонента - вирішити, що саме він повинен робити. Компонент, який створюється, повинен бути одного кольору, коли він увімкнений, та іншого, коли вимкнений. Він також повинен мати властивість On/Off. OK, це звучить дуже просто (перше правило – намагатися зберегти проект простим!).
Наступний крок - вирішити, на якому компоненті буде заснований створюваний. Тут варто глянути на ієрархію VCL. Зрозуміло, що компонент буде різновидом TGraphicControl, і якщо потрібно зберегти компонент простим, чому б зробити його простим колом замість складного бітмапа. TShape на перший погляд, здається ідеальним. Варто познайомитися з ним ближче (це можна зробити за допомогою хелпу або просто, помістивши його на форму та уважно поглянувши на його властивості та методи). У нього є не потрібні властивості і методові, але принаймні в нього вбудована вся необхідна функціональність.
Не можна видалити властивості або події з компонента, від якого успадковується, а можна лише піднятися на крок у ієрархії спадкування. Це означає, що можна зніяковіти зайвими властивостями, які насправді не потрібні для роботи компонента, якщо вибрати в якості предка компонент, який знаходиться занадто високо в ієрархії, і, навпаки, потрібно писати всю функціональність самим, якщо взяти предка занадто низько в ієрархії .
Все, що треба зробити – цезмінити форму компонента на ту, яка потрібна і змінювати колір пензля, коли індикатор вмикається або вимикається.
2.2. Як створити компонент
Не варто відразу намагатися скомпілювати навіть найпростіший компонент бібліотеки компонентів або пакетну бібліотеку, якщо не переконатися, що він працює. Тому краще створити тестову програму для налагодження, що зараз і буде зроблено.
Крок 1: Створення тестового додатку:
Створення нової програми (File New Application).
Додавання на форму ближче до низу компонентів TButton.
Вибір File Save All та збереження форми як LEDForm.cpp та проекту як LEDProj.
Крок 2: Створення компонента:
Вибір Component New, або, C++Builder v1 File New і вибір Component в діалозі New File Items.
Встановлення Ancestor type у TShape, ім'я класу TLED, Palette Page у "Samples". Клацніть "OK" без натискання "Install", якщо використовується версія 3 або старша (див. мал. 2.1.).