Смекни!
smekni.com

Программирование для Word из Delphi (стр. 3 из 3)

Для перехода на закладку следует использовать метод Goto объекта Selection.

Selection. GoTo (What: Integer; Name: String);

Параметр What указывает тип элемента, на который следует переместиться. Параметр Name задает название закладки, указанное при ее добавлении в документ.

Использование закладок существенно упрощает подготовку унифицированных документов, например, анкет, в которых большая часть информации является вспомогательной, а на ее основе следует заполнить какие-либо поля данных. Места, куда должна быть введена информация, можно пометить закладками, по которым Delphi-программа будет перемещать выделение с целью вывода информации методом TypeText объекта Selection.

2.7 Управление приложением MicrosoftWord

Приложение Microsoft Word, которое является сервером автоматизации, может присутствовать на экране в момент обращения к нему клиента, а может быть, скрыто. Видимость приложения определяется логическим свойством Visible. Управление видимостью приложения может быть необходимо, чтобы пользователь не смог помешать процессу экспорта информации. Приложения Office устроены таким образом, что им все рано, кто вводит информацию – стороннее приложение через сервер автоматизации или пользователь с помощью интерфейса. Таким образом, если Delphi-приложение осуществляет длительный экспорт информации, используя метод TypeText объекта Selection, пользователь имеет возможность переключиться в окно Word и, например, изменить положение текстового курсора. В результате таких действий изменится состояние объекта Selection, и информация будет выведена не по порядку, а из того места, которое указал пользователь. Для того, чтобы запретить пользователю изменять выделение во время процесса экспорта информации, можно скрыть окно приложения с экрана на это время.

Еще одна интересная особенность использования сервера автоматизации MicrosoftWord вытекает из принадлежности объекта Selection к объекту «Word.Application», а не к объекту Document, с которым работает программа. Если ссылка на сервер автоматизации не создана в программе функцией CreateOleObject, а получена из функции GetActiveOleObject, то переключение пользователем в другое окно приложения Word, используемого программой, также приведет к изменению смысла свойства Selection. После переключения в другой документ данное свойство будет определять выделение в этом документе, что является недопустимым, так как в него будет осуществляться вывод информации. Для избежание таких проблем не следует использовать сервера автоматизации, полученные функцией GetActiveOleObject, если вывод информации может занять длительное время. Заметим, что даже вывод нескольких строк может дать пользователю возможность переключения между приложениями, поэтому более правильно создавать новый сервер автоматизации при использовании методов объекта «Word.Application» вообще.


Заключение

В операционной системе Windows приложения существуют не изолированно; пользователи, как правило, желают, чтобы они взаимодействовали. Буфер обмена Windows предлагает простой способ взаимодействия между приложениями, поскольку с его помощью пользователи могут копировать и вставлять данные. Однако все больше и больше программ предлагают интерфейс автоматизации, позволяющий управлять ими из других программ. Помимо очевидного преимущества программируемой автоматизации по сравнению с ручными операциями пользователя, эти интерфейсы полностью нейтральны по отношению к языку программирования, используемому для их написания. Технология COM и OLE позволяют разработчикам в полной мере использовать все средства уже созданных программ. Используя их, разработчики расширяют функциональность своих приложений, прикладывая к этому минимум усилий и времени. К тому эти технологии предоставляют возможность экспортировать данные в общепринятые и распространенные форматы, что в конечном итоге делает созданное приложение более удобным и полезным.

В данный момент MicrosoftWord является наиболее мощным и распространенным текстовым редактором. Включение его возможностей в приложения позволяет создавать по-настоящему функциональные и полезные программы работающие с текстовыми данными.


Список использованных источников

1. Сухарев М.В. Основы Delphi. Профессиональный подход. – СПб.: Наука и Техника, 2004. – 600 с.: ил.

2. Кэнту М. Delphi 7: Для профессионалов. – СПб.: Питер, 2004. – 1101 с.: ил.

3. Фленов М.Е. Библия Delphi. – СПб.: БХВ-Петербург, 2004. – 880 с.: ил.

4. Фленов М.Е. Программирование в Delphi глазами хакера. – СПб.: БХВ-Петербург, 2004. – 368 с.: ил.

5. Тейксейра С., Пачеко К. Delphi 5, Руководство разработчика. в 2 т. – СПб.: Питер, 2005.

6. Стивенс Р. Delphi. Готовые алгоритмы / Пер. с англ. – М.: ДМК Пресс, 2001. – 384.: ил.

7. Стивенс Р. Delphi. Готовые алгоритмы / Пер. с англ. Мерещука П. А. - 2-е

изд., стер. - М.: ДМК Пресс ; СПб.: Питер, 2004. - 384 с.: ил.

8. http://www.demo.ru

9. BorlandDelphi 2005. Электронный самоучитель. ООО «ИДДК», 2005.


Приложение 1

Создать приложение создающее документ Word и записывающее в него 100 строк цифр от 100 до 200.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Comobj, StdCtrls, Buttons;

type

TForm1 = class(TForm)

BitBtn1: TBitBtn;

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation


{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);

var

WordDoc: variant;

x: integer;

y: string;

begin

WordDoc := CreateOLEObject('Word.Application');

WordDoc.Visible := true;

WordDoc.Documents.Add;

x := 100;

while x<201 do

begin

y := IntToStr(x);

WordDoc.Selection.TypeText(y);

WordDoc.Selection.TypeParagraph;

x:= x+1;

end;

WordDoc := Unassigned;

end;

end.