В 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 по умолчанию и используется наиболее часто.
Опубликовал Kest
January 05 2010 19:17:34 ·
0 Комментариев ·
9269 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.