Курсовая работа: Программирование для Word из Delphi
Параметр Unit определяет единицу смещения выделения. Некоторые его значения, указаны в таблице 1.
Таблица 1. – Некоторые значения параметра Unit.
Значение | Единица смещения выделения |
1 | Один символ |
2 | Одно слово |
3 | Одно предложение |
4 | Один абзац |
5 | Одна строка |
9 | Один столбец таблицы, если выделение находится в таблице |
10 | Одна строка таблицы, если выделение находится в таблице |
12 | Одна ячейка таблицы, если выделение находится в таблице |
И, наконец, чтобы просто сбросить выделение, не изменяя его начального положения, можно воспользоваться методом Collapse объекта Selection.
2.5 Форматирование текстовой информации
Для форматирования текущего выделения, через объект Selection можно получить доступ к объекту Font, определяющему характеристики шрифта данного выделения. Основные свойства объекта Font перечислены в таблице 2.
Таблица 2. – Основные свойства объекта Font.
Название свойства | Тип | Описание |
Name | String | Название шрифта |
Size | Integer | Размер шрифта |
Bold | Boolean | Наличие атрибута «Полужирный» |
Italic | Boolean | Наличие атрибута «Наклонный» |
StrikeThrough | Boolean | Наличие атрибута «Перечеркнутый» |
Subscript | Boolean | Символы в режиме «Нижний индекс» |
Superscript | Boolean | Символы в режиме «Верхний индекс» |
SmallCaps | Boolean | Все символы строчные |
AllCaps | Boolean | Все символы заглавные |
Документ, с точки зрения текстовой информации, состоит из набора (семейства) абзацев, представленных объектами Paragraph, доступ к каждому из которых возможен через функцию item объекта-семейства Paragraphs. Форматирование параграфа, редактирование которого производится в данный момент, осуществляется через свойство ParagraphFormat объекта Selection, а для объектов типа Paragraph возможности форматирования доступны напрямую. Доступные для изменения настройки абзаца включают выравнивание, наличие буквицы (первой буквы абзаца специального начертания), отступы первой строки от границы абзаца и отступы самой границы абзаца от краев страницы, название стиля абзаца, и множество других параметров, используемых в Word. Мы рассмотрим две часто используемых настройки абзаца – отступы абзаца и его выравнивание.
Отступы абзаца задаются свойствами Leftindent (отступ слева), Rightlndent (отступ справа) и FirstLinelndent (отступ первой строки от левой границы абзаца) объекта ParagraphFormat. Значения отступов задаются вещественными числами в условных единицах, которые можно получить из сантиметров или дюймов с помощью методов объекта «Word.Application» CentimetersToPoints и InchesToPoints.
Выравнивание редактируемого (текущего) абзаца выполняется с помощью свойства Alignment объекта ParagraphFormat. Выравнивание всех абзацев документа можно выполнить через одноименное свойство объекта-семейства Paragraphs. В качестве значений, определяющих выравнивание, могут использоваться: 0 (выравнивание по левому краю), 1 (выравнивание по центру), 2 (выравнивание по правому краю) и 3 (выравнивание по ширине).
Для установки одинакового выравнивания для всех абзацев можно воспользоваться объектом-семейством Paragraph.
2.6 Использование закладок
Microsoft Word поддерживает возможность работы с закладками – неотображаемыми атрибутами документа, управление которыми (добавление, удаление и переход на закладку) осуществляется с помощью диалога пункта главного меню Вставка→Закладка. Приложение, которое является OLE-клиентом, может обратиться к семейству Bookmarks закладок для доступа к каждой из них, или к объекту Selection для перехода (перемещения выделения) на закладку, заданную именем.
Для перехода на закладку следует использовать метод Goto объекта Selection.
Selection. GoTo (What: Integer; Name: String);
Параметр What указывает тип элемента, на который следует переместиться. Параметр Name задает название закладки, указанное при ее добавлении в документ.
Использование закладок существенно упрощает подготовку унифицированных документов, например, анкет, в которых большая часть информации является вспомогательной, а на ее основе следует заполнить какие-либо поля данных. Места, куда должна быть введена информация, можно пометить закладками, по которым Delphi-программа будет перемещать выделение с целью вывода информации методом TypeText объекта Selection.
2.7 Управление приложением Microsoft Word
Приложение 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.: ил.