Шаг 88.
Автоматизация Microsoft Word. Работа с объектом WordBasic. Объектная модель WordBasic

    На этом шаге мы рассмотрим объектную модель WordBasic.

    В предыдущих шагах мы рассмотрели архитектуру объекта Word.Application, а также использование этого объекта для работы с документами. Для этого рассматривались внутренние объекты Application, их свойства и методы. Доступ к этим объектам, их свойствам и методам в среде Delphi обеспечивается аналогично доступу в среде программирования Visual Basic для приложения Word. Но приложение Word имеет в своем арсенале еще одно средство для работы с документами - WordBasic.

    Word.Basic и Word.Application - разные объекты, но они имеют общие черты. Их сходство заключается в том, что они оба входят в состав приложения Word и предназначены для решения аналогичных задач автоматизации создания документов. Word.Basic, как и Word.Application, обладает инструментом предоставления своих возможностей внешним программам через механизм OLE Automation. Основное отличие WordBasic от Visual Basic состоит в том, что первый предоставляет не структуру связанных объектов со своими свойствами и методами, а набор процедур и функций, количество которых превышает 900.

    Между процедурами и функциями WordBasic и Visual Basic можно провести аналогию и сравнить их возможности, что мы и сделаем в следующих шагах. Сначала рассмотрим объектную модель WordBasic. Структура объекта Word.Basic представлена на рисунке 1. Она проста и представляет собой набор функций и процедур, принадлежащих корневому объекту, через который внешняя программа может получить доступ к ним.


Рис.1. Объектная модель WordBasic

    Для доступа к объекту Word.Basic из приложений, созданных в Deplhi, используем библиотеку ComObj и функцию CreateOleObject(), которая возвращает ссылку на объект. В качестве аргумента этой функции используется строка - идентификатор объекта 'Word.Basic'. Рассмотрим следующий фрагмент исходного текста:

uses 
   ComObj;
.    .    .    .
var 
WB:variant;
.    .    .    .
procedure TForm1.Button1Click(Sender: TObject); 
begin
  WB:=CreateOleObject('Word.Basic'); 
end;

    Получив доступ к объекту Word.Basic, можно переходить к решению вопросов автоматизации создания документов Word. В отличие от Visual Basic мы имеем дело с библиотекой процедур и функций, а не с четкой структурой объекта Application. Как быть в данном случае и с чего начать? Лучше всего начать с изучения библиотеки WordBasic и понять, как функции и процедуры этой библиотеки соотносятся со структурой объекта Application. Откроем раздел "Справка по Visual Basic" справки по MS Word. В этом разделе откроем подраздел "Visual Basic Equivalents for WordBasic Commands" (рисунок 2).


Рис.2. Набор команд WordBasic

    На рисунке 2 слева представлены команды WordBasic, справа - объекты и методы объекта Application, выполняющие аналогичные функции. Для детального анализа возможностей WordBasic сравним несколько его процедур и функций, позволяющих создать или отредактировать простой документ.

    На следующем шаге мы рассмотрим загрузку объекта WordBasic.




Предыдущий шаг Содержание Следующий шаг