Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование в среде Delphy / Программирование в среде Delphi.doc
Скачиваний:
189
Добавлен:
01.05.2014
Размер:
1.3 Mб
Скачать

27.3. Компоненты ActiveX

Задачу визуального представления COM–объектов выполняет технология ActiveX. С точки зрения программиста, ActiveX – это черный ящик, обладающий свойствами, методами и событиями. С точки зрения модели объектов COM, элемент управления ActiveX – это сервер, поддерживающий технологию автоматизации, реализованный в виде динамической библиотеки, исполняемый в адресном пространстве клиента и допускающий визуальное редактирование.

С Delphi поставляется ряд компонентов ActiveX, которые находятся на одноименной страничке палитры компонент.

Можно включить в палитру компонентов Delphi любой компонент ActiveX, зарегистрированный в системном реестре. Для этого нужно пройти путь: Component → Import ActiveX Control, выбрать нужный компонент и нажать клавишу Install. С другой стороны, можно любой компонент или любую форму Delphi сделать компонентом ActiveX. В первом случае, пройдя путь: File → New, на страничке ActiveX выберем значок ActiveX Control. В появившемся окне зададим необходимые параметры для реализации нового ActiveX компонента. Во втором случае на страничке ActiveX выберем значок Active Form. Задав имя нового компонента ActiveX, имя модуля Unit для реализации компонента, имя проекта, тип потоковой модели элемента ActiveX и сохранив на диске проект, мы получим 6 файлов с расширениями *.dpr, *.pas, *_tlb.pas, *.tlb, *.dfm, *.res, которые описыавют:

• *.dpr – DLL библиотеку, реализующую COM сервер,

• *.pas – реализацию ActiveX формы,

• файл с окончанием _tlb и расширением pas – библиотеку типов COM–объекта в формате Delphi,

• *.tlb – библиотеку типов COM объекта в двоичном формате,

• *.dfm – форму в формате Delphi,

• *.res – ресурсы формы.

Теперь в среде Delphi можно переносить на форму любые компоненты и настраивать их свойства и события, одновременно будет изменяться содержимое описанных выше файлов. Остается только зарегистрировать новый ActiveX компонент и включить его в состав одного из пакетов.

28. Динамические библиотеки

Динамически подключаемые библиотеки (Dynamic Link Library – DLL) играют важную роль в функционировании ОС Windows и прикладных программ.

DLL представляют собой файлы с откомпилированным исполняемым кодом, который используется приложениями и другими DLL. Реализация многих функций ОС вынесена в динамические библиотеки, которые используются по мере необходимости, обеспечивая тем самым экономию адресного пространства. DLL загружается в физическую память один раз, когда к ней обращается какой–либо процесс. Для всех процессов, использующих DLL, в их виртуальной памяти отображаются только образы этих библиотек, при этом для каждого процесса создается впечатление, что DLL загружена именно в его адресное пространство. По существу, динамические библиотеки отличаются от исполняемых файлов только одним, они не могут быть запущены самостоятельно. Следует отметить, что DLL не имеет своего стека и очереди сообщений Windows. При вызове подпрограмм из DLL используется стек вызывающей программы. Для того чтобы динамическая библиотека начала работать, необходимо, чтобы она была вызвана уже запущенной программой или работающей DLL.

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

Разновидностью динамических библиотек являются пакеты Delphi, предназначенные для хранения кода компонентов для среды разработки и приложений. Применение динамических библиотек позволяет добиться ряда преимуществ:

• уменьшаются размер исполняемого файла приложения и занимаемые им ресурсы;

• функции DLL могут использовать несколько процессов одновременно;

• управление динамическими библиотеками возлагается на операционную систему;

• внесение изменений в DLL не требует перекомпиляции всего проекта;

• одну DLL могут использовать программы, написанные на разных языках программирования.