Шаг 3.
Вкладка Servers. Компонент TWordApplication (часть 2)

    На этом шаге мы рассмотрим некоторые другие свойства компонентаTWordApplication.

    Вообще соединиться с сервером Word можно несколькими способами, например:

procedure TForm1.Button1Click(Sender: TObject);
...
   WordApplication1.ConnectKind := ckNewInstance;
   WordApplication1.Connect;
   WordApplication1.AutoQuit := true;
...

или

procedure TForm1.Button1Click(Sender: TObject);
...
   WordApplication1.ConnectKind := ckNewInstance;
   WordApplication1.AutoConnect:=true;
   WordApplication1.AutoQuit := true;
...

или с помощью создания объекта Word.Application. Для этого в модуле формы созданного приложения укажем ссылку на использование библиотеки ComObj и объявим переменную W: Variant.

uses ComObj;
...
procedure TForm1.Button1Click(Sender: TObject);
Var W:Variant;
begin
    W:=CreateOleObject('Word.Application');
    W.Visible:=true;
    W.Documents.Add;
end;

Результат работы данного примера можно увидеть на рисунке:


Рис.1. Соединение с сервером Word при помощи создания объекта Word.Application

Текст этого примера можно взять здесь

    Documents - представляющий из себя массив открытых на данный момент документов (Document). Соответственно у этого свойства есть свойство Count, показывающее общее количество открытых документов. Свойство только для чтения и используется для проверки, есть ли хоть один открытый документ. Создание нового документа осуществляется методом Add:

 WordApplication1.Documents.Add(Param1,Param2,Param3,Param4);

где

    Visible - свойство, позволяющее делать видимым или невидимым документ в любом месте программы.

    Selection - свойство, указывающее на позицию курсора или выделенный фрагмент текста в активном документе. Для вставки текста имеются методы InsertAfter и InsertBefore. Первый вставляет текст после объекта Selection, второй - перед ним, например:

 WordApplication1.Selection.InsertAfter('ОТЧЁТ ' +Edit1.Text+#13);

    Символ #13 переведёт курсор на новую строку и означает конец абзаца. Стоит отметить, что данные функции имеют ограничение на размер передаваемой строки, которая не должна превышать 255 символов.

    Dialogs - это коллекция объектов Dialogs, которые соответствуют встроенным диалогам Word. Доступ к конкретному диалогу осуществляется через выражение вида:

 WordApplication1.Dialogs.Item(WdWordDialog);

где константа WdWordDialog может принимать одно из следующих значений:

    У Dialog есть метод Show, открывающий пользователю диалог. В метод передается не обязательный аргумент TimeOut - время в миллисекундах, после которого диалог автоматически закроется, если передать значение по умолчанию - EmptyParam, то диалог будет закрываться только пользователем. Например:

var Dial:OleVariant;
. . . . . . . . . . .
 WordApplication1.Visible:=true;
 //Открытие файла
 Dial:=wdDialogFileOpen;
 WordApplication1.Dialogs.Item(Dial).Show(EmptyParam);
 //Сохранение файла активного документа
 Dial:= wdDialogFileSaveAs;
 WordApplication1.Dialogs.Item(Dial).Show(EmptyParam);
 //Печать файла активного документа
 Dial:= wdDialogFilePrint;
 WordApplication1.Dialogs.Item(Dial).Show(EmptyParam);

    Причем перед показом диалога желательно, чтоб сервер был видимым (если еще невидимый), иначе он станет видимым автоматически, но появится без главного меню и инструментальных панелей, что нехорошо. Кроме того метод Show возвращает целое число, определяющее, какой кнопкой закрыт диалог. Но здесь есть подводный камень, можно сказать один из недостатков этого метода, - возвращаемые числа для разных диалогов не одинаковы. К примеру если один возвращает:

то диалог открытия файла:

    На следующем шаге мы продолжим рассматривать свойства компонента TWordApplication.




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