Получив представление о средствах Delphi, поддерживающих разработку объектов ActiveX, рассмотрим инструмент Delphi для создания объектов ActiveX. Как это ни странно, но начать придется не с кодирования, а с документации. Если быть более точным, то сначала придется создать библиотеку типов, которая будет использоваться в Delphi для генерации шаблон кода, базирующегося на иерархии классов среды DAX. Позже созданный шаблон будет заполнен, откомпилирован, зарегистрирован и т. д. Следовательно, прежде чем приступить к созданию объектов ActiveX, следует усвоить, что такое информации о типах и как использовать редактор библиотек типов (Type Library Editor) Delphi. Обозначенные аспекты описаны в следующем разделе.
Библиотеки типов — это составные документы OLE, в которых содержится информация об объектах СОМ, элементах управления ActiveX и объектах автоматизации. Информация о типах включает перечисления, свойства и методы интерфейсов.
Библиотека типов предназначена для предоставления другим приложениям и средам программирования информации о составных объектах, которые в ней содержатся. В процессе разработки элементов управления ActiveX и объектов автоматизации Delphi сохраняет информацию о типах в файле с расширением TLB, который в качестве ресурса компонуется в модуль DLL или ЕХЕ.
В следующих разделах будут коротко описаны возможности редактора библиотек типов Delphi и типы, которые создаются для элементов управления ActiveX, форм ActiveForm, объектов автоматизации и т. п.
Редактор библиотек типов
Редактор библиотек типов Delphi используется для просмотра и редактирования библиотек типов. Основой интерфейса редактора является панель Object List (рис. 3.1), с помощью которой пользователь может изменять, добавлять и удалять элементы библиотеки типов. Элементами библиотек типов являются составные классы, свойства и методы интерфейсов и перечисления. Панель Object List представляет элементы в виде дерева объектов. В зависимости от типа элемента, выбранного в панели Object List, в правой части редактора библиотек типов появляются различные вкладки. Возможно, это будут вкладки Attributes, Members и Uses.
Для редактирования библиотеки типов текущего проекта выполните команду View/Type Library. Чтобы просмотреть библиотеку типов, не являющуюся частью проекта, выберите пункт меню File/Open. После этого в списка File of type выберите строку Type Library (*.tlb;*.dll;*.ocx;*.exe;*.olb), чтобы вывести все файлы, которые могут содержать информацию о типах.
Теперь более детально рассмотрим каждый элемент библиотеки типов. Начнем с информации о библиотеке.
Информация о библиотеке типов
Каждая библиотека типов включает раздел, описывающий саму библиотеку, — элемент библиотеки типов. Когда этот элемент выбран в панели Object List (см. рис. 3.1), в правой части экрана редактора библиотеки типов появляются две вкладки: Attributes и Uses. Два следующих раздела описывают назначение вкладок Attributes и Uses в элементе библиотеки типов.
Вкладка Attributes в описании библиотеки типов
Во вкладке Attributes (атрибуты) содержится общая информация и характеристики библиотеки типов. Показанные ниже атрибуты и флаги появляются в этой вкладке, когда в панели Object List выбран элемент библиотеки типов (см. рис. 3.1). В табл. 3.1 перечислены все атрибуты, а в табл. 3.2 — все флаги библиотеки типов.
Рис. 3.1. Редактирование данных о библиотеке типов
Вкладка Uses в описании библиотеки типов
Во вкладке Uses показаны все библиотеки, на которые ссылается просматриваемая библиотека. С помощью ссылок на другие библиотеки типов можно заимствовать определение элементов, таких как пересечение или интерфейсы. Это поможет разработчику определить собственные интерфейсы в собственной библиотеке типов. Например, основной интерфейс сервера автоматизации порожден от интерфейса IDispatch, но вам не придется изобретать колесо, так как Delphi автоматически создает ссылку на библиотеку типов STDOLE32. TLB, в которой определен интерфейс IDispatch. Библиотека STDOLE32.TLB является основной библиотекой типов Windows.
С каждой записью вкладки Uses связано две части информации. Первая часть — имя библиотеки, на которую создается ссылка, вторая — идентификатор GUID, который идентифицирует библиотеку типов в реестре Windows.
Перечисления (Enum) в библиотеках типов
Перечисления в библиотеках типов практически не отличаются от перечислений языка Object Pascal. Перечисление в библиотеке типов — это коллекция связанных констант, используемая как тип данных во всех остальных элементах библиотеки для определения свойств или методов. Кроме того, в зависимости от среды программирования константы перечисления могут использоваться с объектом ActiveX внутри среды программирования. В следующих двух разделах рассматривается назначение вкладок Attributes и Members в описании перечислений.