Создание контроллеров автоматизации с помощью C++Builder




Использование информации из библиотек типов


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

Рассмотрим следующий пример кода:

XL=CreateOleObject(“Excel.Application.8”);

XL.OlePropertySet(“Visible”,true);

v0=XL.OlePropertyGet(“Workbooks”);

v0.OleProcedure(“Add”,-4109);

Данный пример заставляет Excel создать пустой лист с диаграммой на основе шаблона, отличного от принятого по умолчанию.

Откуда в данном случае взялась константа –4109? Каким образом можно узнать, какими еще константами можно пользоваться при автоматизации с использованием данного сервера?

Ответы на эти вопросы можно получить, открыв библиотеку типов данного сервера. Сделать это можно, выбрав пункт меню File/Open, указав в списке возможных файлов Type Library и выбрав соответствующую библиотеку типов (для Excel это Excel8.olb, для Word – MSWord8.olb). При этом по истечении некоторого времени (эти библиотеки очень велики) будут созданы файлы с описанием всех использованных констант, а также свойств и методов содержащихся в сервере объектов (в данном случае Excel_TLB.cpp и Excel_TLB.h для С++Builder либо Excel_TLB.pas для Delphi). При создании этих файлов появятся сообщения об ошибках, связанные с тем, что в коде Excel и Word могут использоваться зарезервированные слова Object Pascal или С++.

Редактор библиотеки типов при этом представляет все вложенные объекты в виде иерархической структуры, внутри которой можно найти значения необходимых констант. В частности, в разделе шаблонов можно найти список констант, характеризующих различные типы шаблонов листов Excel:

wpe14.jpg (42099 bytes)

Значения констант, описывающих шаблоны MS Excel 97

Именно там и содержится ссылка на константу xlWBATChart = –4109, соответствующую шаблону диаграммы.

При необходимости использовать в коде приложения-клиента именованные константы можно сослаться на файл Excel_TLB.h или Excel_TLB.pas в тексте модуля приложения.

Точно так же можно определить, каковы свойства и методы вложенных объектов данного сервера автоматизации:




Содержание  Назад  Вперед