2.         ЭКСПОРТ ИНФОРМАЦИИ В MICROSOFT WORD

2.1 Структура приложения Microsoft Word

Приложения, входящие в состав Microsoft Office, имеют иерархическую объектную структуру. Структура каждого приложения сложна и существенно отличается от структуры других приложений, что обусловлено различной направленностью самих приложений. Объекты иерархий Microsoft Office содержат в себе методы, количество которых приблизительно равно количеству действий, поддерживаемых при редактировании документов, поэтому их число очень велико. Иерархическая структура объектов отражает представление данных, редактируемых в том или ином приложении. Структура Microsoft Word включает в себя объект верхнего уровня Application, управляющий непосредственно приложением, и вложенные в него объекты типа Document, предоставляющие доступ к документам, открытым в данный момент. При добавлении очередного объекта Document сторонним приложением с помощью методов сервера автоматизации Microsoft Word открывает очередной документ. Аналогично объекты типа Document могут содержать в себе объекты типа Paragraph, представляющие собой ссылки на абзацы текста. Доступ к объектам различного уровня из программы-клиента, реализованной, например, на Delphi, осуществляется единообразно, через ссылки на вышестоящие в иерархии объекты. Объекты одного уровня и назначения, например, объекты типа Document, объединяются в одно свойство, так называемое семейство, которое имеет название типа объектов во множественном числе. Таким образом, объекты типа Document объединяются в свойство Documents.

Такие свойства являются, фактически списками, для которых можно определить количество элементов в каждом из них (свойство Count) и получить доступ к элементу с помощью функции Item, получающей в качестве параметра номер объекта в списке. Элементы нумеруются от единицы. Для передачи параметров в методы объектов автоматизации и присвоения значений их свойствам используется специальный тип данных OleVariant, основное отличие которого от типа Variant состоит в его совместимости с операционной системой, которая и поддерживает технологию СОМ. Итак, для экспорта информации в Microsoft Word с использованием сервера автоматизации следует:

1. Создать экземпляр сервера автоматизации «Word.Application» (запустить Word) или получить ссылку на уже запущенный экземпляр.

2. Создать новый документ.

3. Вывести информацию в созданный документ.

4. Разрушить структуры, связанные с экземпляром сервера автоматизации в программе, а также ссылки на элементы его объектной иерархии.

2.2      Запуск сервера

 

Создание или получение ссылки на экземпляр сервера автоматизации выполняется с помощью функций CreateOleObject или GetActiveOleObject соответственно. В некоторых случаях целесообразно сначала пытаться подключиться к существующему серверу, а в случае неудачи запустить собственную версию.

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

 

Для создания нового документа следует добавить элемент в семейство Documents объекта «Word.Application» с помощью функции Add, которая вернет ссылку на созданный документ:

Add(Template: String, NewTemplate: Boolean): Document;


Строковый параметр Template определяет, на основе какого шаблона должен быть создан новый документ, а параметр NewTemplate указывает на то, что создаваемый документ сам должен являться шаблоном. Если метод вызывается без параметров, то новый документ создается на основе шаблона Normal (обычный) и является обычным документом.

Ссылку на вновь созданный документ, возвращаемую методом Add, следует сохранить в переменной типа Variant для дальнейшего доступа к документу с целью вывода информации в него. При необходимости вывода информации в сложные формы новый документ можно создать на основе некоторого «шаблона» - ранее созданного и сохраненного документа. Параметры могут передаваться методу Add в обычной форме.

Закрыть документ после окончания вывода информации в него можно с помощью метода close.

2.4 Непосредственный вывод информации

 

Вывод информации в Microsoft Word аналогичен работе пользователя в редакторе и некоторым образом эмулирует ее. Так, с помощью объекта Selection, отражающего текущее выделение в документе, поддерживаются команды ввода текста и настройки его параметров. Если явного выделения не присутствует, то объект Selection отражает местонахождение текстового курсора. Заметим, что объект Selection принадлежит объекту «Word.Application», а не объекту Document. Для вывода информации в объект Selection используется его метод TypeText. Для ввода символа перевода строки можно воспользоваться методом TypeParagraph объекта Selection. При последовательном выводе информации изменение автоматически установленного выделения обычно не требуется, однако, если возникнет такая необходимость, можно установить параметры выделения с помощью методов Move, MoveRight (сместить выделение вправо) и MoveLeft (сместить выделение влево):

Move(Unit: Integer, Count: Integer);

MoveRight(Unit: Integer, -Count: Integer, Extend: Boolean = False);

MoveLeft(Unit: Integer, Count: Integer, Extend: Boolean = False);

Методы сдвигают выделение на заданное параметром Count количество единиц. Значение параметра может быть положительным, либо отрицательным. В случае метода Move знак параметра Count определяет направление смещения выделения. Отрицательное значение параметра указывает на смещение влево, а положительное – вправо. Методы MoveRight и MoveLeft изначально настроены на смещение выделения в заданную сторону (вправо и влево соответственно), поэтому отрицательное значение параметра Count в их вызове просто меняет направление смещения выделения. При использовании методов Move, MoveLeft и MoveRight, выделение, если оно существовало до их вызова, снимается. Этого можно избежать в функциях MoveLeft и MoveRight, если в качестве значения необязательного параметра Extend задать значение True (по умолчанию устанавливается False).

Параметр Unit определяет единицу смещения выделения. Некоторые его значения, указаны в таблице 1.

Таблица 1. – Некоторые значения параметра Unit.

Значение Единица смещения выделения
1 Один символ
2 Одно слово
3 Одно предложение
4 Один абзац
5 Одна строка
9 Один столбец таблицы, если выделение находится в таблице
10 Одна строка таблицы, если выделение находится в таблице
12 Одна ячейка таблицы, если выделение находится в таблице

И, наконец, чтобы просто сбросить выделение, не изменяя его начального положения, можно воспользоваться методом Collapse объекта Selection.


Информация о работе «Программирование для Word из Delphi»
Раздел: Информатика, программирование
Количество знаков с пробелами: 25316
Количество таблиц: 2
Количество изображений: 1

Похожие работы

Скачать
10410
0
0

... . В Delphi многие действия требуют гораздо меньше времени и выполняются более интуитивно. Безусловно, что для быстрого создания приложений необходим иной взгляд на программирование вообще. Для этого основой Delphi стал объектно-ориентированный Pascal (который так и называется Object Pascal и сильно отличается от стандарта языка). Теперь программист не пишет стандартный код, а оперирует с более ...

Скачать
117942
2
4

... обращений к реестру были проконтролированы при помощи Registry Monitor от Sysinternals Corp. 4.4 Описание программы Автоматизированная система для оценки уровня знаний студентов с применением технологии «Клиент-сервер» предназначена для проведения централизованных итоговых занятий по разным дисциплинам в виде интерактивного тестирования. Данный проект поддерживает совместимость с пакетом ...

Скачать
110612
10
19

... набор процедур и функций языков программирования Basic и Pascal, позволяют управлять графическим режимом работы экрана, создавать разнооборазные графические изображения и выводить на экран текстовые надписи. ГЛАВА 2. ГРАФИЧЕСКИЕ ВОЗМОЖНОСТИ ЯЗЫКА ПРОГРАММИРОВАНИЯ В КУРСЕ ИНФОРМАТИКИ БАЗОВОЙ ШКОЛЫ (НА ПРИМЕРЕ BASIC И PASCAL)   2.1 Разработка мультимедиа курса «Графические возможности языков ...

Скачать
36295
1
7

... 166, 16 Mb RAM, Windows 95 Вывод   В ходе разработки курсового проекта я ближе ознакомился с теорией МП- трансляторов, научился писать программы - конструкторы для построения МП – транслятора по его параметрам с последующей проверкой задаваемых цепочек, закрепил знания по системному программированию. Разрабатывая программу, я научился применять знания дискретной математике, что облегчает ...

0 комментариев


Наверх