<<
>>

Компоненты Delphi для взаимодействия с серверами автоматизации MS Office

В поставку Delphi 7 включен ряд компонентов, специально предназначенных для организации взаимодействия с приложениями MS Office. Данные компоненты располагаются на странице Servers палитры компонентов IDE Delphi.
Компоненты доступа к серверам автоматизации могут использоваться и для доступа к вложен­ным объектам приложений MS Office (таким как Document, ExcelWorkBook и т. п.).

Все компоненты доступа к серверам автоматизации являются потомками базово­го класса COM-серверов TOLEServer. В этом классе объявлен ряд абстрактных ме­тодов и свойств, позволяющих устанавливать связь с сервером автоматизации. Потомки класса TOLEServer создаются при импорте библиотек типов.

Рассмотрим опубликованные свойства компонентов серверов СОМ, устанавли­вающих контакт с интерфейсом Application (компоненты WordApplication, ExcelApplication, PowerPointApplication, OutlookApplication). Наряду с традиционными для всех ком­понентов свойствами Name и Tag они содержат четыре дополнительных.

? AutoConnect: Boolean — определяет, загружать (true) или нет (false) сервер при запуске приложения.

? AutoQuit: Boolean — определяет, разрывать (true) или нет (false) связь с серве­ром при завершении работы приложения.

? ConnectKind : TConnectKind — определяет способ установления соединения с сер­вером. Это свойство может принимать следующие значения:

■ ckRunningOrNew — если приложение-сервер уже выполняется, то производит­ся подключение к имеющемуся экземпляру сервера, в противном случае производится запуск нового экземпляра сервера;

■ ckNewInstance — всегда создается новый экземпляр сервера;

■ ckRunninglnstance — подключение только к уже запущенному серверу;

■ ckRemote — подключение к удаленному серверу;

■ ckAttachToInterface — подключение не выполняется.

В последнем случае (если свойство ConnectKind равно ckAttachToInterface) соеди­нение с сервером производится с помощью метода ConnectTo, и значение свойства AutoConnect не может устанавливаться в true. Обычно значение ckAttachToInterface свойства ConnectKind неприменимо для серверов Application.

? RemoteMachineName — сетевое имя компьютера, на котором расположен сервер. Указывается при установке свойства ConnectKind равным ckRemote.

Значительная часть остальных серверов, представленных на странице Servers па­литры компонентов и предназначенных для работы с вложенными объектами при­ложений MS Office, обладают точно такими же опубликованными свойствами, за исключением свойства AutoQuit, которое у них отсутствует.

При использовании компонентов-серверов СОМ для доступа к приложениям MS Office достаточно поместить на форму соответствующий компонент и затем вызы­вать требуемые методы сервера автоматизации, так же как методы обычного объекта Delphi. Например, для того чтобы выполнить подключение к серверу Word, со­здать в нем новый документ и передать в него текст, можно использовать следую­щий фрагмент кода;

WordAppl i cati onl.Connect:

WordApplicationl.Visible:=true;

WordAppli cati onl.Documents.Add(EmptyParam.EmptyParam.

EmptyParam.EmptyParam):

WordApplicationl.Selection.InsertAfter('Пример создания нового документа'+#13):

WordApplicationl.Selection.InsertAfter('и передачи в него текста'-+#13):

Здесь метод Connect устанавливает связь с сервером Word. В зависимости от зна­чения свойства ConnectionKind выполняется подключение к запущенному прило­жению MS Word либо создается новый экземпляр сервера.

ПРИМЕЧАНИЕ------------------------------------------------------------------------------

При установке свойства AutoConnect в значение true метод Connect вызывать не надо — связь с сервером устанавливается сразу при запуске приложения.

Весь остальной текст приведенного фрагмента кода аналогичен предыдущему и не требует пояснений.

СОВЕТ------------------------------------------------------------------------------------------

Следует отметить, что компоненты-серверы WordApplication, ExcelApplication, Ро- werPointApplication, OutlookApplication устанавливают связь с сервером автоматиза­ции через интерфейс Application. Поэтому их методы и свойства фактически являют­ся методами и свойствами сервера, используемого при написании макросов на языке VBA в приложениях MS Office. В справочной системе Delphi практически не содержит­ся информации о компонентах-серверах. Поэтому, если при работе с ними возника­ют затруднения, следует обращаться к справке по VBA, поставляемой с MS Office.

Из методов компонентов для связи с объектами автоматизации выделим следую­щие:

? Connect — устанавливает связь с сервером MS Word (данный метод следует ис­пользовать, если значение свойства AutoConnect компонента WordApplication равно false);

? ConnectTo — выполняет подключение к уже существующему объекту (в каче­стве аргумента этого метода указывается объект, с которым связывается ком­понент);

? Disconnect — разрывает соединение с сервером.

Помимо свойств и методов, компоненты-серверы могут обрабатывать ряд собы­тий сервера автоматизации. Количество и виды обрабатываемых событий зависят от конкретного компонента.

<< | >>
Источник: Избачков Ю. С., Петров В. Н.. Информационные системы. 2006

Еще по теме Компоненты Delphi для взаимодействия с серверами автоматизации MS Office:

  1. АВТОМАТИЗАЦИЯ
  2. Богомазова Г.Н.. Установка и обслуживание программного обеспечения персональных компьютеров, серверов, периферийных устройств и оборудования, 2015
  3. Функциональные компоненты правового сознания.
  4. § 3.1. Основные структурные компоненты организации
  5. 54. Основные компоненты социального контроля
  6. Участие образных компонентов в мышлении следователя
  7. Основные компоненты.
  8. Дополнительные компоненты (общие).
  9. Дополнительные компоненты (специальные)
  10. Дополнительные компоненты общие.