Глава 7

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

7.1 Способы сохранения и повторного
использования кодов

Повторное использование кодов — важнейшая концепция объектно-ориенти-
рованного визуального программирования. Все компоненты C++Builder — это
;;оды, разработанные фирмой Borland, которые вы повторно используете, включая
их в свое приложение. Вы используете также явно или неявно множество функций
я процедур API Windows, применяя многие функции и процедуры языка C++. Но
з данном разделе в основном речь пойдет о другом — как вам сохранить и повторно
использовать свои собственные коды, разработанные в процессе проектирования.

В C++Builder предусмотрено несколько механизмов сохранения и повторного
.(спользования кодов:

• Создание и хранение в библиотеке шаблонов компонентов

• Хранение и наследование форм в депозитарии

• Хранение проектов в депозитарии

• Создание новых компонентов и хранение их в библиотеке

• Создание динамически присоединяемых библиотек DLL

• Создание пакетов (packages)

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

7.2 Создание и хранение шаблонов компонентов

Наиболее простой способ сохранения разработанных вами компонентов для
последующего использования — запоминание в библиотеке визуальных компонен-
тов их шаблонов. Покажем, как это делается, на простом примере. Пусть вы хоти-
те на основе компонента Edit создать окно редактирования, в котором пользова-
тель мог бы вводить только целые числа, т.е. не мог бы вводить никаких других
символов, кроме цифр. Кроме того, при нажатии пользователем клавиши Enter фо-
кус должен передаваться следующему компоненту в последовательности табуля-
ции. Это можно сделать, например, следующим образом.

Откройте новое приложение и перенесите на форму компонент типа Edit. В об-
работчике его события OnKeyPress напишите оператор

Set <char, '0', '9'> Dig;

if ( ! (Dig « '0' « '1' « '2' « '3' « '4' « '5'

« '6' « '7' « '8' « '9').Contains(Key))

Key = 0;

;i в обработчике события OnKeyDown — оператор: