Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л16.doc
Скачиваний:
1
Добавлен:
11.09.2019
Размер:
278.02 Кб
Скачать

Лекція №16

Тема 6. Типи проектів C++Builder

Створення нових компонентів План

  1. Реєстрація та встановлення компонента.

  2. Структура класу компонента.

  3. Завдання властивостей компонента.

  4. Створення методів компоненту.

  5. Створення подій компоненту.

1.Реєстрація та встановлення компонента

При створенні компонентів, що наслідують якись наявні в C++Builder компоненти, ви можете додати нові властивості, нові події і тому подібне. Проте створення нових компонентів - це непростий процес, що вимагає хорошого розуміння тонкощів спадкування і властивостей, методів і подій батьківських компонентів.

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

Побудуємо наш компонент як спадкоємець класу TEdit і назвемо наш новий клас TEditLetNum. У компонент, окрім властивостей, звичайних для TEdit, потрібно додати дві нові властивості: EnableNum і EnableLet. Тип обох властивостей - bool. Перша з них дозволяє або забороняє введення цифр, а друге дозволяє або забороняє введення яких-небудь символів, окрім цифр. Таким чином, якщо EnableNum = true і EnableLet = true, то це буде звичайне вікно редагування. Якщо EnableNum = true, a EnableLet = false, отримаємо вікно, в якому можна вводити тільки цифри. Якщо EnableNum = false, a EnableLet = true, то у вікно, заборонено вводити цифри. Ну а ситуацію, коли EnableNum = false і EnableLet = false, потрібно заборонити, оскільки в таке вікно нічого ввести неможливо.

Передбачимо в компоненті метод Clear - очищення тексту у вікні і властивість Modified, яка показуватиме, чи був модифікований текст з моменту останьої очистки. У момент очищення генеруватимемо подію OnClear.

Компоненти в C++Builder компілюються в пакети. Тому, якщо ви ще не створили пакет, в який хочете компілювати ваш новий компонент, то можете почати з його створення (втім, це можна зробити і пізніше).

Для створення нового пакету :

  1. Виконаєте команду File | New | Other і в діалоговому вікні New Items на сторінці New виберіть піктограму Package - пакет. Після цього ви потрапите у вікно Диспетчера Пакетів (Package Manager).

  1. У цьому вікні Contains - вміст пакету, а Requires - список інших пакетів, які потрібні для підтримки вашого. Відразу збережіеть пакет у файлі з розширенням .dpk, виконавши команду File | Save As.

  2. Клацнувши на кнопці Add (додати), ви потрапите у вікно, що дозволяє включити в пакет модуль (Add Unit), компонент (New Component) або ActiveX (Import ActiveX). В даному випадку вам потрібно включити в пакет свій новий компонент. Для цього ви відкриваєте відповідну сторінку, яка має вигляд, представлений на малюнку.

  1. Вкажіть в цьому вікні батьківський тип (виберіть TEdit модуля StdCtrls з випадного списку Ancestor type), ім'я нового класу у вікні Class Name (для нашого прикладу - TEditLetNum, сторінку в бібліотеці компонентів (Palette Page), на якій хочете розмістити піктограму вашого нового компонента. Можете вказати нову сторінку, і вона буде створена. Задайте також шлях і ім'я модуля новостворюваного компонента (вікно Unit file name).

  2. Клацніть на OK і ви повернетеся у вікно Диспетчера Пакетів. В ньому вже з’явиться ім'я вашого компонента.

  3. Клацніть на кнопці Install (установка) і компонент буде встановлений на вказаній вами сторінці бібліотеки компонентів. Можете відкрити цю сторінку і побачити його там. Виконавши у вікні Диспетчера Пакетів подвійне клацання на імені файлу компонента, ви можете перейти у вікно редагування і побачити, що у ньому з'явилася заготовка модуля вашого компонента. Збережете її у файлі (File | Save).

  4. Щоб скомпілювати модуль вашого компонента, можна клацнути у вікні Диспетчера Пакетів на кнопці Compile (компіляція). Але в даному випадку модуль вже скомпільований під час його встановлення.

Якщо ви захочете видалити який-небудь модуль з пакету, це можна зробити у вікні Диспетчера Пакетів, виділивши потрібний модуль і клацнувши на кнопці Remove.

Видалити сам зареєстрований пакет можна таким чином;

    1. Виконаєте команду Project | Options з головного меню і виберіть сторінку Расkages.

    2. На цій сторінці клацніть на пакеті, який ви хочете видалити, і потім клацніть на Remove.

Отже, ви створили прообраз вашого компонента і зареєстрували його. За умовчанням піктограма компонента на відповідній сторінці бібліотеки буде узята відповідно піктограмі батьківського типу. А якщо ви заздалегідь, створили файл ресурсів компонента і включили в нього нову піктограму, то саме вона буде відбражена на вказаній вами сторінці.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]