В Delphi компоненты хранятся в специальных файлах с расширением *

В Delphi компоненты хранятся в специальных файлах с расширением *.bpl, которые называются пакетами (packages). Список используемых пакетов компонентов можно просмотреть с помощью команды меню Component/Install Packages (рис.1).

Рис. 1
Пакеты содержат откомпилированный код компонентов и представляют собой DLL (динамически загружаемые библиотеки) особого типа. Каждый пакет может содержать множество компонентов. В то же время, каждый компонент может находиться только в одном пакете. Пакеты создаются в результате компиляции исходного кода компонентов.
При помощи этого диалогового окна можно добавить новый пакет (кнопка Add), удалить имеющийся (кнопка Remove). Удаление означает не физическое удаление файла с диска, а удаление ссылки из среды разработки на данный пакет. При добавлении нового пакета компоненты, хранящиеся в нем, появляются на палитре, а при удалении – наоборот, исчезают. Пакет можно не удалять, а «спрятать» его содержимое на этапе разработки посредством снятия отметки напротив имени пакета в списке. Можно также просмотреть компоненты и их пиктограммы (кнопка Components). И наконец, можно отредактировать добавленные пользователем пакеты (кнопка Edit). Пакеты, поставляемые вместе с Delphi, редактировать нельзя (кнопка Edit в этом случае недоступна).
В диалоговом окне рис. 1 можно также задать способ использования пакетов. По этому признаку пакеты компонентов делятся на три типа:
1. Runtime package (пакет, работающий во время выполнения приложения).
2. Designtime package (пакет, используемый во время разработки).
3. Designtime and Runtime (пакет, используемый на обоих этапах – и разработки, и выполнения).
Все они представляют собой DLL.
Runtime-пакеты (файлы с расширением *.bpl) поставляются конечному пользователю вместе с проектом, если проект был скомпилирован с включенным флажком Build with runtime packages. Само приложение (*.exe или *.dll) в этом случае получается небольшим, потому что в нем будет храниться только код программы. Все компоненты, которые установлены на форме, не попадут в исполняемый файл. Когда программа будет запускаться, она будет подгружать эти компоненты из файлов пакетов, перечисленных в строке чуть ниже вышеупомянутого флажка. Так можно уменьшить размер приложения, но при его переносе на другой компьютер, вместе с программой надо передавать довольно объемные *.bpl-файлы. Их нужно скопировать в папку Windows\System32.
Разработка проекта с runtime-пакетами дает преимущество в объеме используемых файлов, если только проект включает несколько модулей Delphi (по оценкам специалистов не менее пяти). При совместной работе этих модулей достигается экономия ресурсов операционной системы, поскольку один загруженный в ОП пакет обслуживает несколько модулей.
Design-time-пакеты (файлы с расширением *.dcp) используются только на этапе разработки приложения. Флажок Build with runtime packages в этом случае сброшен. Во время разработки такие пакеты поддерживают создание компонентов на форме. Программа становится полноценной и не нуждается в дополнительных *.bpl-файлах. В скомпилированный проект Delphi включает код не из пакета компонентов, а из отдельно создаваемых *.dcu-файлов. При этом *.dcp-файлы генерируются из *.dcu-файлов.
Пакеты третьего типа содержат компоненты, доступные как на этапе разработки, так и в режиме выполнения программы. Флажок Build with runtime packages в этом случае также сброшен. Данный способ использования пакетов устанавливается в Delphi по умолчанию и используется наиболее часто.

Введение в создание компонентов Delphi
Этапы и способы создания нового компонента
Создание простейшего компонента
Создание компонента. Анализ требований к компоненту
Создание компонента. Выбор подходящего родительского класса
Создание компонента. Программирование компонента
Создание компонента. Установка компонента в палитру
Создание компонента. Тестирование компонента
Создание компонента. Создание значка компонента
Добавление методов и событий в компонент
Создание и добавление свойств в компонент
Понятие свойства. Классификация свойств.
Простые свойства
Перечислимые свойства
Свойство типа множество
Свойство типа массив
Добавление свойств в компонент
Создание справки компонента
Удаление компонентов из среды разработки

Понравилась статья? Поделиться с друзьями: