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

if ((! FEnableNum) && (Dig.Contains(Key)))

Key = 0;

if ((! FEnableLet) && !(Dig.Contains(Key)))

Key = 0;

if (Key != 0) FModified = true;

TEdit::Keypress(Key);

}

Откомпилируйте этот код. Теперь надо изменить тестирующее приложение.
Возможный вид его уже был представлен ранее на рис. 7.7. Только раньше не по-
яснялось назначение еще одного индикатора CheckBox (назовем его CBClear), око-
ло которого написано «Очистка». Он предназначен для задания значения CanClear
в обработчике события OnClear. Поэтому по сравнению с прежним приложением
надо изменить обработчик OnClear, добавив в него анализ того, установлен фла-
жок в индикаторе CBClear, или нет (анализ свойства Checked). Но тут вы столкне-
тесь с трудностью, если тестовое приложение делаете не заново, а изменяя преды-
дущее. По сравнению с прошлым вариантом компонента в функцию обработчика
добавился параметр. Поэтому прежний обработчик события OnClear будет выда-
вать вам синтаксические ошибки. Надо или уничтожить его и написать новый,
или вручную исправить заголовки в объявлении обработчика и в его реализации,
которая может иметь вид:

void_fastcall TFormI::EditLetNumlClear(TObject *Sender,

bool SCanClear)
(

ShowMessage("Событие OnClear");

CanClear = CBClear->ChecK.ed;

EditLetNuml->SetFocus () ;

}

В этом обработчике значение параметра CanClear, разрешающего или запре-
щающего очистку, задается в зависимости от того, установлен или нет индикатор
CBClear.

Вот и все. Не забудьте только согласовать исходные значения параметров
EnableNum и EnableLet с исходными состояниями индикаторов CBNum и CBLet.
Если, например, вы установили EnableNum в true, a EnableLet в false, то индика-
тор CBNum должен быть включен (свойство Checked = true), а индикатор CBLet —
выключен.

Запустите приложение и убедитесь в правильной работе вашего компонента.

7.4 Депозитарий — хранилище форм и проектов

В депозитарий (хранилище — Repository) вы попадаете, когда выполняете
команду File New. При этом открывается диалоговое окно New Items, в котором вы
можете выбрать включенные в C++Builder готовые формы или воспользоваться
разработанными фирмой Borland мастерами. Но вы можете использовать депози-
тарий и для хранения собственных разработок.

Нередко создание сложной формы с множеством размещенных на ней компо-
нентов требует немалого времени. Причем однажды разработанная удачная форма
может пригодиться вам в последующих приложениях. Конечно, можно сохранить
ее в каком-либо каталоге и, когда возникнет необходимость, использовать в оче-
редном проекте. Но если разработка этого нового проекта будет не скоро, вы, воз-
можно, потратите много времени на поиск каталога с необходимой вам формой,
если вообще найдете ее. Хотелось бы иметь возможность как-то зарегистрировать
свои удачные разработки в C++Builder, чтобы в дальнейшем без труда повторно их
использовать. Такую возможность и предоставляет вам депозитарий.