...

Листинг 9.1.

Запуск Microsoft Word

procedure TFormStartWord.ButtonStartClick(Sender: TObject);

var

//Переменная, интерфейс к объекту

Wordvar : OleVariant;

file_Name : string;

begin

//Начало блока перехвата исключения

try

file_Name := ExtractFilePath(Application.EXEName) +

\'worddoc.DOC\

//Инициализируем объект интерфейса

//для доступа к серверу COM Microsoft Word

Wordvar := CreateOleObject(\'Word.Application\');

//Добавление документа

wordvar.application.documents.add;

wordvar.application.activedocument.range.insertAfter(now);

//Сохранение документа (аналог действиям: «Сохранить как…»,

//с указанием имени файла)

wordvar.application.activedocument.saveas(fileName);

//Завершение работы с приложением и выгрузка COM-сервера

wordvar.application.quit(true,0);

end;

Предложенный исходный текст демонстрирует подключение к серверу без помощи компонента среды разработки. Для корректной работы необходимо в раздел uses включить COMOBJ – модуль работы с объектом СОМ. Важно отметить, что наличие функций, вызываемых для объекта wordvar, определяется в период выполнения. Это значит, что ошибка может обнаружиться только в период выполнения программы, поэтому весь код работы с объектом помещен в блок try.

Класс TOLEServer

На вкладке Servers находится набор компонентов для доступа к серверам автоматизации. Не все компоненты возвращают ссылку на объект Application, то есть могут быть получены интерфейсы для доступа к таким вложенным объектам, как документ Microsoft Word или рабочая книга Microsoft Excel. Все компоненты унаследованы от класса TOLEServer, который наследует свойства класса Tcomponent. TOLEServer является базовым классом всех СОМ-серверов. Кроме этого, данный класс имеет еще несколько свойств и методов для управления связью с СОМ-сервером. Среди таковых уже знакомое нам свойство AutoConnect, которое автоматически запускает СОМ-сервер и извлекает из него интерфейс, обеспечивающий связь с контроллером. Еще одно важное свойство класса TOLEServer – это ConnectKind, указывающее тип процесса, с которым устанавливается связь. Свойство используется методом Connect, который вызывается автоматически, если свойство AutoConnect истинно. В табл. 9.1 описаны значения, которые может принимать ConnectKind.

Таблица 9.1. Значение свойства ConnectKind

Более подробно следует рассмотреть значение свойства ConnectKind, равное ckAttachToInterface. Соединение с сервером производится посредством использования главного интерфейса Application, но, например, возникает необходимость подключить к нашему проекту такие компоненты как WordDocument или WordParagraphFormat. В этом случае мы просто подключаемся к уже существующему интерфейсу, а не создаем его заново. Также это может быть необходимо, когда контроллер должен отслеживать события, происходящие в СОМ-сервере.

Загрузка...