Шаг 7.
Вкладка Servers. Компонент TWordDocument

    На этом шаге мы рассмотрим компонентTWordDocument.

    TWordDocument – это специальный сервер документа, т.е. объекта, содержащегося в объекте TWordApplication. С помощью него удобно работать с объектом Document.

    Рассмотрим основные свойства компонента TWordDocument.

Таблица 1. Свойства компонента TWordDocument
Свойство Описание
Property AutoConnect:Boolean; Определяет, должен ли сервер автоматически подключаться к соответствующему объекту. True – соединение с соответствующим объектом произойдет в момент начала выполнения приложения; False(по умолчанию) – соединение с соответствующим объектом можно установить вызовом метода ConnectTo.
Property ConnectKind:TConnectKind; Определяет, как именно осуществляется соединение с соответствующим объектом:
  • CkAttachToInterface - при установке этого значения интерфейс не создается и соответственно нельзя указывать значение True для свойства AutoConnect. Соединение с соответствующим объектом производится с помощью метода ConnectTo;
  • CkNewInstance - при соединении с соответствующим объектом каждый раз создается новый экземпляр;
  • CkRemote - это значение используется совместно со свойством RemoteMachineName, если необходимо подключиться к соответствующему объекту на удаленной машине;
  • CkRunningInstance - соединение устанавливается с уже запущенным соответствующим объектом;
  • CkRunningOrNew(по умолчанию) - подключение к уже существующему соответствующему объекту, или создает новый экземпляр соответствующего объекта, при отсутствии такового.
Property Name: WideString; Задает имя компонента.

    Он подключается к соответствующему объекту с помощью метода ConnectTo. Например, оператор:

WordDocument1.ConnectTo(WordApplication1.ActiveDocument); 
подключает компонент WordDocument1 к активному документу, открытому в Word и указанному свойством ActiveDocument.

    Текст в документе, с которым связывается TWordDocument, разбивается на объекты Range. Каждый такой объект соответствует некоторому непрерывному фрагменту текста. Объект Range может создаваться специальным методом Range, в котором в качестве начала и конца указываются определенные позиции символов или параграфы. Оператор возвращает указатель на созданный объект. Например, операторы:

var MyRange,b,e:OleVariant;
   . . . . . . . .
   b:=10;
   e:=50;
   MyRange:= WordDocument1.Range(b,e);
создают объект MyRange, начинающийся с десятого, и кончающийся пятидесятым символом документа.

    Свойства и методы объектов Range, в основном, совпадают со свойствами и методами объекта выделения Selection. К этим объектам можно применять методы InsertBefore, InsertAfter, TypeText, Paste, Collapse. Объекты Range имеют те же свойства Font и ParagraphFormat, что и Selection. Таким образом, оператор:

MyRange.Font.Bold:=true; 
форматирует жирным шрифтом фрагмент текста, заключенный в объекте MyRange. Если MyRange был создан приведенными выше операторами, то форматированию подвергаются символы с десятого по пятидесятый.

    Объект документа Document имеет свойство Content, которое является объектом, отражающим весь текст. Это тоже объект типа TRange со всеми соответствующими свойствами и методами. Поэтому оператор:

WordDocument1.Content.Font.Bold:=true; 
обеспечит форматирование всего компонента жирным шрифтом, а оператор:
WordDocument1.Content.InsertBefore('ЗАГОЛОВОК' + #13); 
вставит перед началом текста строку ЗАГОЛОВОК.

    Многие функции, выполняемые диалогами, могут вызываться как методы документа Document, если от пользователя не требуется активных действий. Сохранение активного документа в файле с заданным именем можно осуществить методом SaveAs, передавая в него как аргумент типа OleVariant имя файла вместе с путем доступа к нему. Если путь отсутствует, то файл сохраняется в текущем каталоге. Вызов метода SaveAs можно оформить следующим образом:

var FileName: OleVariant;
   . . . . . . . .
   FileName:=’MyDoc.doc’;
   WordDocument1.SaveAs(FileName);
В данном примере файл документа, с которым связан компонент WordDocument1, сохраняется в текущем каталоге с именем MyDoc.doc. Причем WordDocument1 может быть подключен не обязательно к активному документу.

    Печать документа без отображения диалога печати может осуществляться методом Printout:

WordDocument1.Printout; 

    Предварительный просмотр документа перед печатью осуществляется методом PrintPreview:

WordDocument1.PrintPreview; 

    На следующем шаге мы рассмотрим компонентTWordFont.




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