объекта создаем новый документ, предварительно активизировав (отобразив на экране) приложение. После того как 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) каталога, из которого была запущена программа.

Процедура завершения работы основана на вызове метода Quit (листинг 9.6).

...

Листинг 9.6.

Завершение работы с Microsoft Word

procedure TFormWord.bnExitWordClick (Sender: TObject);

begin

//Завершение приложения

Wrd.Quit;

end;

Рассмотренное приложение является примитивным контроллером автоматизации и может служить отправной точкой создания более сложных и функциональных программ автоматического составления отчетов и т. п.

Далее приступим к созданию приложения, которое будет подключаться к серверу COM Microsoft Word и выводить текст, дату и время вывода этого текста в активный документ при его смене (переключении между документами). На этот раз мы воспользуемся компонентами WordDocument и WordApplication с вкладки Servers.

Создаем новый проект и на главную форму приложения помещаем компоненты WordDocument nWordApplication. Далее устанавливаем CBoftcTBoConnectKind компонента Wo г dApp licationBc kRunni ng I ns t anc e, а также значение свойства AutoConnect в True. В данном случае приложение Microsoft Word создаваться не будет, а программа подключится к уже существующему серверу. Основную практическую ценность для нас представляет механизм определения активного документа и добавление в него текста, даты и времени (листинг 9.7).

...

Листинг 9.7.

Реакция на смену активного документа

procedure TFormActiveWord.WordApplicationActiveDocumentChange

(Sender: TObject);

begin

//Подключаемся к текущему документу

WordDocumentNew.ConnectTo( WordApplicationActive.ActiveDocument);

//Контроллер добавляет новую строку в текущий документ

WordDocumentNew.Range.InsertAfter(#13#10+'Переход к документу '+#13#10+

WordApplicationActive.ActiveDocument.Get_FullName+' произведен :'+ DateTimeToStr (Now));

end;

Как вы заметили, подключение к уже существующему серверу происходит каждый раз после смены активного документа. В этот момент в содержимое документа записывается информация: текстовая строка, дата и время перехода к этому документу.

Чтобы просмотреть работу этого приложения, запустите Microsoft Word и создайте в нем два документа. Запустите созданный пример и поочередно активизируйте документы (щелчком кнопкой мыши на Панели задач).

Трюки в Microsoft Excel

Не менее популярным и функциональным приложением из пакета Microsoft Office является Microsoft Excel. Это программа для работы с электронными таблицами. Как и уже знакомое нам приложение Microsoft Word, Microsoft Excel также обладает возможностью создания и редактирования документов (в данном случае таблиц) посредством СОМ. Преимущества использования Microsoft Excel из других программ очевидны, так как она предоставляет широкий спектр возможностей по построению диаграмм, графиков, произведению различных расчетов и пр. Поэтому в качестве примера создадим приложение, которое будет выполнять запуск Microsoft Excel, добавление новой книги, создание листа и помещение в его ячейки текста и формул.

Как и в случае с Microsoft Word, будет использоваться объект THnaOleVariant. Но методы и свойства СОМ-сервера поменяются. Рассмотрим исходный текст приложения для выполнения несложных операций с сервером Microsoft Excel (листинг 9.8).

...

Листинг 9.8.

Работа с Microsoft Excel

unit COMinExcel;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics,

Controls, Forms,

Dialogs,

//Включаем модуль работы с COM- объектами

ComObj;

type

TFormCOMExcel = class(TForm)

//Процедура, вызываемая при создании формы

procedure FormCreate(Sender: TObject);

//Процедура, вызываемая при завершении работы приложения

procedure FormDestroy(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormCOMExcel: TFormCOMExcel;

//Объявление объекта OleVariant с именем Microsoft Excel

Excel: OleVariant;

implementation

{$R *.dfm}

procedure TFormCOMExcel.FormCreate(Sender: TObject);

begin

//Инициализируем объект

Excel := CreateOleObject('Excel.Application');

//Устанавливаем видимым окно приложения Microsoft Excel

Excel.Visible := true;

//Добавляем новую книгу

Excel.Application.Workbooks.Add;

//Вводим текст в ячейку с индексом E5

Excel.Application.Worksheets.Item['Лист1'].

Cells.Item[5,5].FormulaR1C1 := '! ТЕКСТ !

//Задаем характеристики шрифта

Excel.Application.Worksheets.Item ['Лист1'].

Cells.Item[1,1].Font.Bold := true;

//В ячейку с индексом A1 записываем формулу

Excel.Application.Worksheets.Item['Лист1'].

Cells.Item[1,1].FormulaR1C1 := '=18*2

end;

procedure TFormCOMExcel.FormDestroy(Sender: TObject);

begin

//Закрываем приложение Microsoft Excel

Excel.Quit;

end;

end.

Предложенный листинг демонстрирует основы удаленного управления приложением Microsoft Excel. Запуск Microsoft Excel, заполнение ячеек новой таблицы происходит в функции FormCreate.

Во время создания главной формы приложения-примера на экране появится окно программы Microsoft Excel с числом в ячейке с индексом А1 и текстом в ячейке с индексом Е5. Хотя в ячейку с индексом А1 мы записывали =18*2, на экране в этой ячейке будет отображаться 32, так как Microsoft Excel автоматически преобразует выражения в ячейках.

Глава 10 Окна других приложений

• Ловушки Windows

• Программа «Оконный шпион»

Здесь мы будем использовать сведения,

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату