...
Листинг 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
• Программа «Оконный шпион»
Здесь мы будем использовать сведения, приведенные в предыдущих главах (а точнее, в главах 1, 2 и 8), для построения программы, позволяющей проводить различные операции с окнами приложений. Вы также дополнительно познакомитесь с техникой применения ловушек (hook) в Windows и увидите пример реального использования проецирования файла в память для обмена данными между несколькими приложениями. Причем второе в нашем примере обусловлено особенностью работы ловушек, следящих за работой других приложений. Вы также узнаете, как перечислять все открытые окна и, соответственно, получать к ним доступ. Но обо всем по порядку.
Читать дальше
Конец ознакомительного отрывка
Купить книгу