Скачиваний:
35
Добавлен:
28.06.2014
Размер:
56.83 Кб
Скачать

Работа с сервером word

На странице Servers (или Office2k, или Office97) находятся компоненты, относящиеся к текстовому редактору Word. Компонент WordApplicationотвечает за связь с редактором. СвойствоAutoConnect =trueозначает, что соединение с сервером происходит в момент начала выполнения приложения. По умолчанию принято значениеfalse, при этом соединение с сервером можно осуществить вызовом методаConnect:

WordApplication1-> Connect();

Значения свойства ConnectKindопределяют, каким образом происходит соединение:

ckNewInstance– всегда создавать экземпляр сервера. Это значение следует выбирать, чтобы избежать опасности испортить какой-либо документ в уже выполняющемся сервере;

ckRunningInstance – обеспечить только подсоединение к выполняющемуся серверу. Годится, когда приложение должно работать с каким-то открытым документом сервера;

ckRemote – выбирается для удаленного сервера;

ckRunningOrNew– значение выбираемое по умолчанию обеспечивает соединение с уже открытым сервером или создание нового.

После запуска сервера его окно может оставаться невидимым для пользователя. Сделать окно приложения Word видимым можно так:

// для Builder5

WordApplication1-> Visible=true;

// для Builder6

WordApplication1-> set_Visible(true);

Установить местоположение и размеры окна:

WordApplication1 ->set_Left(0);

WordApplication1 ->set_Top(0);

WordApplication1 -> set_Height(200);

WordApplication1 ->set_Width(300);

WordApplication1->Disconnect();- разрыв связи с сервером. Вызов этого метода очень важен, особенно, когда приложение сервер не видимо для пользователя.

Свойство AutoQuit = trueавтоматически вызовет завершение сервера при завершении программы клиента (это полезно когдаConnectKind = ckNewInstance, т.е.приложение создало новый экземпляр сервера).

Работа с компонентом WordApplication Создание нового документа

При создании нового документа он будет добавлен к коллекции открытых в настоящий момент документов Word – Documents. Для создания документа на основе шаблона Normal в Office2k необходимо использовать оператор:

WordApplication1 -> Documents -> Add (EmptyParam,EmptyParam,EmptyParam,true);

А в Office97:

WordApplication1 -> Documents -> Add(EmptyParam, EmptyParam);

В этом случае создается документ WORD с параметрами по умолчанию, если нужно создать шаблон или документ на основе своего шаблона нужно использовать параметры.

Проверка наличия открытых документов

Свойство Countколлекции документов Documents позволяет узнать количество открытых в настоящий момент документов. Следующий оператор, например, позволяет проверить наличие открытых документов:

if (WordApplication1->Documents->Count==0)

Свойство Nameсодержит имя документа. Следующий код позволяет получить список имен всех открытых документов:

TVariant a;

int n, i;

n=WordApplication1->Documents->Count;

for (i=1; i<=n; i++)

{ a=(TVariant)i;

Memo1->Lines->Add(WordApplication1->

Documents->Item(&a)->Name);

}

Работа с текстом

При работе с текстом удобно использовать объект Selection.Selection- это выделенный объект текста в активном документе, а при отсутствии выделения текущая позиция курсора.

Методы InsertBefore и InsertAfterвставляют текст в документ соответственно до и после выделенного фрагмента.

  • Вставка абзаца текста:

WordApplication1 -> Selection -> InsertAfter

(TVariant(“Московский энергетический институт\n”));

  • Пустая строка (абзац):

WordApplication1 -> Selection -> InsertAfter (TVariant(“\n”));

  • Текст из разных источников:

WordApplication1 -> Selection -> InsertAfter

(TVariant(“Уважаемый” + Edit1->Text + “!\n”));

Все вставляемые фрагменты будут присоединяться к объекту Selection, а курсор перемещаться на первую позицию после вставленного текста, поэтому следующий оператор вставит текст перед всем выделенным фрагментом:

WordApplication1 -> Selection -> InsertBefore (TVariant(“ГПИ”));

Метод TypeTextвставляет или заменяет выделенный текст. Если свойствоReplaceSelection =false, текст будет вставлен в документ перед выделенным фрагментом, иначе (значениеtrue) новый текст заменит весь выделенный фрагмент.

Например, следующий код уничтожит все что мы вставили в документ предыдущими операторами:

WordApplication1 ->Options->ReplaceSelection = true;

WordApplication1-> Selection -> TypeText (TVariant(“Новый текст”);

Свертывание выделения

Выделение можно свернуть, вызвав метод Collapse. Курсор переместится к началу (wdCollapseStart) или к концу выделенного фрагмента (wdCollapseEnd).

TVariant Direction=wdCollapseEnd;

WordApplication1->Selection->Collapse(&Direction);

Выделение всего документа

Очень часто требуется выполнение команды «Выделить все», следующий метод позволяет это сделать программно:

WordApplication1->Selection->WholeStory();

Вставка картинки в документ

Clipboard()->Assign(Image1->Picture);

WordApplication1->Selection->Paste();