- •Основные понятия технологии автоматизации
- •Структура пакета Microsoft Office
- •Методы взаимодействия с сервером автоматизации
- •Пример использования позднего связывания
- •Использование раннего связывания для доступа к объекту автоматизации
- •Пример использования раннего связывания
- •Компоненты Delphi для взаимодействия с серверами автоматизации ms Office
- •Взаимодействие с приложениями ms Office
- •Объект Documents
- •Основные методы и свойства объекта Document.
Компоненты Delphi для взаимодействия с серверами автоматизации ms Office
В поставку Delphi 5 включен ряд компонентов, специально предназначенных для организации взаимодействия с приложениями MS Office. Данные компоненты располагаются на странице Servers палитры компонентов Delphi IDE. Компоненты доступа к серверам автоматизации могут использоваться и для доступа к вложенным объектам приложений MS Office (таким как Document, ExcelWorkBook и т. п.).
Все компоненты доступа к серверам автоматизации являются потомками базового класса СОМ-серверов TOLEServer. В этом классе объявлен ряд абстрактных методов и свойств, позволяющих устанавливать связь с сервером автоматизации. Потомки класса TOLEServer создаются при импорте библиотек типов.
Рассмотрим опубликованные свойства компонентов серверов СОМ, устанавливающих контакт с интерфейсом ApplIcation (компоненты WordAppIication, Excel Application, PowerPointApplication, OutlookApplication). Наряду с традиционными для всех компонентов свойствами Name и Tag они содержат четыре дополнительных:
• AutoConnect : Boolean—определяет, загружать (true) или нет (false) сервер при запуске приложения;
• AutoQuit : Boolean — определяет, разрывать (true) или нет (false) связь с сервером при завершении работы приложения;
• ConnectKind : TConnectKind — определяет способ установления соединения с сервером.
Это свойство может принимать следующие значения:
• ckRunningOrNew — если приложение-сервер уже выполняется, то производится подключение к имеющемуся экземпляру сервера, в противном случае производится запуск нового экземпляра сервера;
• ckNewInstance — всегда создается новый экземпляр сервера;
• ckRunni ngInstance — подключение только к уже запущенному серверу;
• ckRemote — подключение к удаленному серверу;
• ckAttachToInterface — подключение не выполняется. При установке данного значения соединение с сервером производится с помощью метода ConnectTo. Значение свойства AutoConnect при этом не может устанавливаться в true. Обычно это значение свойства ConnectKInd неприменимо для серверов Application;
• RemoteMachineName — сетевое имя компьютера, на котором расположен сервер.Указывается при установке свойства ConnectKmd равным ckRemote.
Значительная часть остальных серверов, представленных на странице Servers палитры компонентов и предназначенных для работы с вложенными объектами приложений MS Office, обладают точно такими же опубликованными свойствами, за
исключением свойства AutoQuit, которое у них отсутствует.
При использовании компонентов-серверов СОМ для доступа к приложениям MS Office достаточно поместить на форму соответствующий компонент и затем вызывать требуемые методы сервера автоматизации, так же как методы обычного объекта Delphi. Например, для того чтобы выполнить подключение к серверу Word, создать в нем новый документ и передать в него текст, можно использовать следующий фрагмент кода:
WordApplicationl.Connect:
WordApplicationl.Visible:=true;
WordAppl i cationl.Documents . Add(EmptyParam. EmptyParam.
EmptyParam.EmptyParam);
WordApplicationl.Selection.InsertAfter('Пример создания нового документа'+#13);
WordApplicationl.Selection.InsertAfter('и передачи в него текста'+#13);
Здесь метод Connect устанавливает связь с сервером Word. В зависимости от значения свойства ConnectionKind выполняется подключение к запущенному приложению MS Word либо создается новый экземпляр сервера.
При установке свойства AutoConnect в значение true метод Connect вызывать не надо — связь с сервером устанавливается сразу при запуске приложения.
Из методов компонентов для связи с объектами автоматизации выделим следующие:
• Connect — устанавливает связь с сервером MS Word. Данный метод следует использовать, если значение свойства AutoConnect компонента WordApplication установленоравным false;
• ConnectTo — выполняет подключение к уже существующему объекту. В качестве аргумента этого метода указывается объект, с которым связывается компонент;
• Disconnect — разрывает соединение с сервером.