416 Глава?

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

Построим наш компонент как наследника класса TEdit и назовем наш новый
класс TEditLetNum. В компонент, помимо свойств, обычных для TEdit, желатель-
но добавить два новых свойства: EnableNum и EnableLet. Тип обоих свойств —
bool. Первое из них разрешает или запрещает ввод цифр, а второе разрешает или ,
запрещает ввод каких-либо символов, кроме цифр. Таким образом, если Enable- '
Num = true и EnableLet = true, то это будет обычное окно редактирования. Если
EnableNum = true, a EnableLet = false, получим окно, в котором можно вводить
только цифры. Если EnableNum = false, a EnableLet = true, то в окно, запрещено
вводить цифры. Ну а ситуацию, когда EnableNum = false и EnableLet = false, надо
запретить, поскольку в такое окно ничего ввести невозможно.

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

Если вы хотите, чтобы ваш новый компонент фигурировал на страницах па-
литры компонентов с новой оригинальной пиктограммой, то начните с ее созда- '
ния. Необходимые для этого действия описаны в разделе 5.1.2.4 главы 5.

Компоненты в C++Builder компилируются в пакеты. Поэтому, если вы еще не
создали пакет, в который хотите компилировать ваш новый компонент, то можете
начать с его создания (впрочем, это можно сделать и позднее). Для создания нового
пакета:

1. Выполните команду File | New и в диалоговом окне New Items на странице New
выберите пиктограмму Package — пакет. После этого вы попадете в окно Дис-
петчера Пакетов (Package Manager), показанное на рис. 7.3. В этом окне Contains
— содержимое пакета, a Requires — список других пакетов, требующихся для
поддержки вашего.

2. Сразу сохраните пакет в файле с расширением .dpk, выполнив команду
File | Save As или выбрав команду Save из меню, всплывающего при щелчке пра-
вой кнопкой мыши.

3. Щелкнув на кнопке Add (Добавить), вы попадете в окно, позволяющее ва
включить в пакет модуль (Add Unit), компонент (New Component) или Activr
(Import ActiveX). В данном случае вам надо включить в пакет свой новый ко:

понент. Для этого вы открываете соответствующую страницу, которая имг
вид, представленный на рис. 7.4. Укажите в этом окне родительский тип (в:

берите TEdit из выпадающего списка Ancestor type), имя нового класса в ок;

Class Name (для нашего примера — TEditLetNum), страницу в библиотг';

компонентов (Palete Page), на которой хотите разместить пиктограмму вагш
нового компонента. Можете указать новую страницу и она будет создана. П;

верьте также путь и имя модуля вновь создаваемого компонента (окно Unit
name).

Рис. 7.3

Пустое окно Диспетчера Пакетов, готовое
для внесения нового компонента