Повторное использование разработанных кодов 415

вы можете выделить как группу связанные компоненты Table и DataSource и со-
хранить их как единый шаблон набора данных. Вы можете также сохранить шаб-
лон какой-то панели вместе в расположенными на ней компонентами. Таким обра-
зом можно сделать шаблоны фрагментов, часто используемых вами при проекти-
ровании форм, и сэкономить свое время при разработке новых проектов.

Если в дальнейшем вам перестанет нравиться созданный вами шаблон, вы мо-
жете удалить его из библиотеки. Для этого надо выполнить команду Compo-
nent | Configure Palette. При выполнении этой команды вы увидите диалоговое окно
страницы Palette опций среды C++Builder (рис. 7.2). В этом окне вы можете уда-
лить (кнопка Delete) компонент или целую страницу, если она пустая, переимено-
вать (кнопка Rename) компонент или страницу, добавить (кнопка Add), изменить
последовательность размещения страниц библиотеки и компонентов.

Рис. 7.2

Диалоговое окно реорганизации палитры
компонентов

7.3 Создание новых компонентов
и включение их в библиотеку

7.3.1 Начало создания и установка компонента

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

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