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

Процедуры, реализующие методы записи, присваивают полю переданное в
них значение параметра и в случае, если передано значение false, проверяют зна-
чение другого поля. Если и другое поле имеет значение false, то оно исправляется
на true.

Объявления процедур записи включены в раздел protected. Это означает, что
они закрыты для внешнего пользователя, но доступны для возможных потомков
вашего класса.

Конструктор объявлен в открытом разделе класса public и имеет имя TEdit-
LetNum, совпадающее с именем класса. В реализации конструктора задаются на-
чальные значения новым свойствам, которые вы добавили в компонент.

Теперь давайте сохраним подготовленные файлы и построим тестовое прило-
жение для отладки установленного компонента. Хотя он еще не до конца создан,
кое-что уже можно увидеть.

Откройте новый проект и внесите в него с соответствующей страницы ваш но-
вый компонент. Откройте (командой File | Open) файл вашего компонента, чтобы
можно было вносить в него какие-то изменения. Сохраните проект под каким-ни-
будь именем (например, Test). Откомпилируйте ваше приложение (команда Project
| Make All Projects). Если все прошло без ошибок, выделите на форме ваш компонент
и взгляните на его свойства в Инспекторе объектов. Вы найдете там добавленные
вами свойства EnableNum и EnableLet. Оба свойства имеют по умолчанию задан-
ные в конструкторе значения true. Попробуйте изменить оба значения на false.
Это вам не удастся сделать, так как сработают написанные вами методы записи.

Свойство Modified в Инспекторе объектов вы не увидите, так как это свойство
может использоваться только во время выполнения.

7.3.2.3. Методы

Методы включаются в открытый раздел класса — раздел public, поскольку
иначе их нельзя было бы использовать. Собственно один метод — конструктор ТЕ-
ditLetNum, вы уже написали. Теперь вам нужно написать метод Clear, очищаю-
щий содержимое окна редактирования и устанавливающий значение поля FModi-
fied равным false. Генерировать событие OnClear мы пока не будем. А поскольку
базовый класс TEdit уже имеет метод Clear, очищающий текст, занесенный в окно
редактирования, то вы можете в вашем переопределенном методе вызвать наследу-
емый метод Clear и добавить задание значения FModified. В этом случае объявле-
ние и реализация переопределенного метода Clear может иметь вид:

class PACKAGE TEditLetNum : public TEdit
{

public:

void      fastcall Clear();

};

void _fastcall TEditLetNum::Clear()
{

TEdit::Clear();          // Вызов родительского метода

FModified = false;

)

Как видно из приведенного кода, для вызова родительского метода достаточно
просто указать явным образом класс (в нашем случае TEdit), метод которого вызы-
вается.

Впрочем, в данном случае вы могли бы и не обращаться к родительскому мето-
ду, а просто очистить текст в окне: