На этом шаге мы рассмотрим некоторые другие свойства компонента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.