Создание контроллеров автоматизации



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


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

wpe14.jpg (42099 bytes)

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

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

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

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

wpe15.jpg (37433 bytes)

Свойства и методы коллекции Workbooks

Используя сведения о константах, объектах, свойствах и методах OLE-сервера, можно модифицировать приведенный выше пример. Теперь мы создадим в Excel график на основе данных из рабочих листов, скопируем его в буфер обмена и перенесем в документ Word (об объектах и константах которого узнаем из библиотеки типов Word), снабдив график подписью. Соответствующий код выглядит следующим образом:

//———————————————————————————————#include <vcl.h>

#pragma hdrstop

#include “ole2.h”

#include <ComObj.hpp>

//———————————————————————————————#pragma package(smart_init)

#pragma resource “*.dfm”

TForm1 *Form1;

Variant XL,v0,v1,v2, v22, vrange, WD,a,b,c;

//———————————————————————————————__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//———————————————————————————————

void __fastcall TForm1::Button1Click(TObject *Sender)

{

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

XL.OlePropertySet(“Visible”,true);

v0=XL.OlePropertyGet(“Workbooks”);

v0.OleProcedure(“Add”);

v1=v0.OlePropertyGet(“Item”,1);

v0=v1.OlePropertyGet(“Worksheets”) ;

v22=v1.OlePropertyGet(“Charts”) ;

v22.OleProcedure(“Add”);

v0.OlePropertyGet(“Item”,1).OlePropertySet(“Name”,”Бухгалтерия желтая”);

v0.OlePropertyGet(“Item”,2).OlePropertySet(“Name”,”Бухгалтерия красная”);



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