Валерий Борисок - Delphi. Трюки и эффекты
- Название:Delphi. Трюки и эффекты
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Валерий Борисок - Delphi. Трюки и эффекты краткое содержание
«Delphi. Трюки и эффекты», как и все издания данной серии, адресована тем, кто хочет научиться делать с помощью уже знакомых программных пакетов новые, интересные вещи. В первой части книги многое говорится о среде разработки Delphi (самых последних версий) и программировании на языке Object Pascal. Благодаря этому издание подходит и новичкам, и начинающим программистам. Вторая (основная) часть книги описывает удивительные возможности, скрытые в языке, и на примерах учит читателя программистским фокусам – от «мышек-невидимок» и «непослушных окон» до воспроизведения МРЗ и управления офисными программами Word и Excel из приложений Delphi. Купив эту книгу, вы пройдете непростой путь к вершинам программистского мастерства весело и интересно.
Delphi. Трюки и эффекты - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
file_Name : string;
begin
//Начало блока перехвата исключения
try
file_Name := ExtractFilePath(Application.EXEName) +
\'worddoc.DOC\
//Инициализируем объект интерфейса
//для доступа к серверу COM Microsoft Word
Wordvar := CreateOleObject(\'Word.Application\');
//Добавление документа
wordvar.application.documents.add;
wordvar.application.activedocument.range.insertAfter(now);
//Сохранение документа (аналог действиям: «Сохранить как…»,
//с указанием имени файла)
wordvar.application.activedocument.saveas(fileName);
//Завершение работы с приложением и выгрузка COM-сервера
wordvar.application.quit(true,0);
…
end;
Предложенный исходный текст демонстрирует подключение к серверу без помощи компонента среды разработки. Для корректной работы необходимо в раздел uses включить COMOBJ – модуль работы с объектом СОМ. Важно отметить, что наличие функций, вызываемых для объекта wordvar, определяется в период выполнения. Это значит, что ошибка может обнаружиться только в период выполнения программы, поэтому весь код работы с объектом помещен в блок try.
Класс TOLEServer
На вкладке Servers находится набор компонентов для доступа к серверам автоматизации. Не все компоненты возвращают ссылку на объект Application, то есть могут быть получены интерфейсы для доступа к таким вложенным объектам, как документ Microsoft Word или рабочая книга Microsoft Excel. Все компоненты унаследованы от класса TOLEServer, который наследует свойства класса Tcomponent. TOLEServer является базовым классом всех СОМ-серверов. Кроме этого, данный класс имеет еще несколько свойств и методов для управления связью с СОМ-сервером. Среди таковых уже знакомое нам свойство AutoConnect, которое автоматически запускает СОМ-сервер и извлекает из него интерфейс, обеспечивающий связь с контроллером. Еще одно важное свойство класса TOLEServer – это ConnectKind, указывающее тип процесса, с которым устанавливается связь. Свойство используется методом Connect, который вызывается автоматически, если свойство AutoConnect истинно. В табл. 9.1 описаны значения, которые может принимать ConnectKind.
Таблица 9.1. Значение свойства ConnectKind
Более подробно следует рассмотреть значение свойства ConnectKind, равное ckAttachToInterface. Соединение с сервером производится посредством использования главного интерфейса Application, но, например, возникает необходимость подключить к нашему проекту такие компоненты как WordDocument или WordParagraphFormat. В этом случае мы просто подключаемся к уже существующему интерфейсу, а не создаем его заново. Также это может быть необходимо, когда контроллер должен отслеживать события, происходящие в СОМ-сервере.
9.4. Управление Microsoft Word и Microsoft Excel
Трюки в Microsoft Word
В этом разделе мы более подробно остановимся на рассмотрении практических примеров использования СОМ-сервера редактора Microsoft Word. Достаточно популярный редактор обладает обширным набором возможностей, которые можно использовать вручную (традиционное создание и редактирование документов) и с применением технологии СОМ. Основное удобство последнего метода заключается в автоматизации рутинной работы, например составления отчетов. Следующий пример поможет нам разобраться в принципах построения контроллеров автоматизации, которые ранее уже упоминались. Контроллер автоматизации с точки зрения СОМ представляет собой приложение, которое посредством вызова процедур сервера проводит различные манипуляции над документом. В Microsoft Word это может быть написание текста в установленном формате и т. д.
Рассмотрим пример приложения, которое будет создавать новый документ Microsoft Word, записывать в него некоторый текст, добавлять таблицу и сохранять полученный документ в файл. В целях наилучшего понимания принципов использования объектов СОМ первый пример не будет использовать компонент среды разработки. Итак, приступим к созданию приложения. Для начала создаем новый проект и помещаем на форму следующие кнопки:
• открытия приложения Microsoft Word;
• вывода текста;
• добавления таблицы;
• сохранения документа;
• завершения работы Microsoft Word.
Мы не будем использовать компоненты, поэтому добавляем в секцию uses модуль ComOb j. Для работы с СОМ-сервером редактора нам понадобится объект OLE. Добавляем переменную типа OleVariant:
var
//Объект OLE
Wrd: OleVariant;
Обработчик кнопки запуска редактора имеет следующий вид (листинг 9.2).
Листинг 9.2.
Запуск редактора Microsoft Word
procedure TFormWord.bnOpenWordClick(Sender: TObject);
begin
//Создаем объект
Wrd := CreateOleObject(\'Word.Application\');
//Делаем видимым приложение
Wrd.Visible := true;
//Добавляем новый документ
Wrd.Documents.Add;
end;
После инициализации объекта создаем новый документ, предварительно активизировав (отобразив на экране) приложение. После того как Microsoft Word запущен и в нем создан новый документ, можно записывать текст. Для этого определяем обработчик кнопки вывода текста (листинг 9.3).
Листинг 9.3.
Вывод текста в Microsoft Word
procedure TFormWord.bnSetTextClick(Sender: TObject);
begin
//Процедура записи текста
//Устанавливаем шрифт
Wrd.Selection.Font.Size := 20;
Wrd.Selection.Font.Bold := true;
//Пишем текст
Wrd.Selection.TypeText(\'Технология COM является одной из современных\');
Wrd.Selection.TypeText(\'технологий организации межпроцессного взаимодействия\'#13#10#13#10);
//Задаем новые параметры шрифта
Wrd.Selection.Font.Size := 12;
Wrd.Selection.Font.Bold := false;
Wrd.Selection.Font.Italic := true;
Wrd.Selection.TypeText(\'Подпись: \');
Wrd.Selection.Font.Bold := true;
Wrd.Selection.TypeText(\'Delphi\'#13#10#13#10);
end;
Особой сложности данный фрагмент вызывать не должен, так как настройка шрифта и вывод теста производятся посредством интуитивно понятных функций и заданием соответствующих свойств. Но надо пояснить, что набор символов # 13 # 10 эквивалентен переходу на новую строку.
Процедура добавления таблицы является достаточно простой и выглядит следующим образом (листинг 9.4).
Листинг 9.4.
Добавление таблицы
procedure TFormWord.bnAddTableClick(Sender: TObject);
begin
//Процедура добавления новой таблицы
Wrd.ActiveDocument.Tables.Add(Wrd.Selection.Range,3,3);
end;
Таблица содержит три столбца и столько же строк. Далее следует пояснить обработчик нажатия кнопки сохранения документа (листинг 9.5).
Листинг 9.5.
Сохранение документа Microsoft Word
procedure TFormWord.bnSaveClick(Sender: TObject);
begin
//Сохранение документа
Wrd.ActiveDocument.SaveAs(ExtractFilePath(Application.EXEName) +
\'_result.DOC\');
end;
Сохранение осуществляется путем вызова MeTOflaSaveAs объекта ActiveDocument, который в качестве параметра принимает путь к файлу. После нажатия кнопки сохранения документ с текстом будет записан в файл (result. doc) каталога, из которого была запущена программа.
Читать дальшеИнтервал:
Закладка: