Лекция 15


Тема: Создание новых компонентов.

 

При создании компонентов, являющихся наследниками компонентов C++ Builder, можно добавить новые свойства, которые могут отображаться в Инспекторе Объектов, можно добавлять новые события и т.п.

Процесс создания нового компонента рассмотрим на следующем примере: создать окно редактирования, в котором по желанию во время проектирования и во время выполнения можно будет разрешать ввод только цифр, запрещать ввод цифр или разрешать ввод любых символов. Предусмотреть очистку содержимого окна и свойство, показывающее, был ли модифицирован пользователем текст с момента последней очистки. В момент очистки определим генерацию соответствующего события, которое пользователь при желании может обрабатывать.

Пусть компонент будет наследником класса TEdit и называется TNewEdit. В его свойства, помимо обычных для TEdit, добавим два новых свойства: EnableNum и EnableLet типа bool. Первое разрешает или запрещает ввод цифр, а второе разрешает или запрещает ввод каких-либо символов, кроме цифр. Очевидно, что EnableNum=false и EnableLet=false надо запретить, тат как в такое окно ничего ввести невозможно.

Предусмотреть в компоненте метод Clear – очистку текста в окне и свойство Modified, которое будет показывать, был ли модифицирован текст с момента последней очистки. В момент очистки будем генерировать событие OnClear.

Компоненты в С++Builder компилируются в пакеты. Для создания нового пакета нужно:

1. Выполнить команду File->New и в появившемся диалоговом окне NewItems на странице New выбрать пиктограмму Package – пакет. Появится окно Диспетчера пакетов (Package Manager), где Contains – содержимое пакета, Require – список других пакетов, которые необходимы для поддержки создаваемого.

2. Сохранить пакет в файле с расширением .dpk.

3. Добавить новый компонент, щелкнув кнопку Add. В появившемся окне на вкладке NewComponent задать:

a. Родительский тип в списке Ancestor type (TEdit);

b. Имя нового класса в окне Class Name (ТNewEdit);

c. Страницу в библиотеке компонентов (Palette Page), на которой будет размещена пиктограмма нового компонента;

d. Ok.

4. Установить компонент, щелкнув по кнопке Install. Выполнив в окне Диспетчера Пакетов двойной щелчок по имени файла компонента, можно перейти в окно редактирования, где будет заготовка модуля нового компонента. Сохранить заготовку в файле.

Удаление зарегистрированного компонента можно выполнить командой Component->Package или командой Project->Options.

Прообраз нового компонента создан и зарегистрирован. Заготовка модуля компонента имеет вид: