Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика_нов.doc
Скачиваний:
3
Добавлен:
24.09.2019
Размер:
657.41 Кб
Скачать

11.1. Порядок выполнения задания

Создать новый проект, содержащий одну форму. На форме расположить управляющий элемент - кнопку, по нажатию на которую должно запускаться приложение MS Office, заданное по варианту, а также выводиться предупреждающее сообщение в случае ошибки запуска приложения. Далее в этом приложении необходимо создать новый документ, записать в него указанную по варианту информацию и обработать ее при помощи средств MS Office.

Средства обработки информации MS Office представляют собой сложные программные продукты, ориентированные на так называемую архитектуру "клиент-сервер". Это понятие имеет много общего с понятием обычной организации компьютерной сети, в которой имеется сервер, способный обрабатывать запросы, и клиент, который посылает эти запросы. В сети Интернет, например, клиентом является браузер пользователя, а сервером - программное обеспечение поддержки сайтов. По аналогии ядро MS Office представляет собой сервер, способный принимать и обрабатывать десятки команд одновременно. В качестве клиента может выступать сам пользователь (который вводит команды вручную на клавиатуре), либо программа, которая может быть написана на любом языке программирования (включая VBA или Visual Basic Application - встроенный в приложения MS Office язык программирования).

В Delphi существует 2 способа работы с приложениями MS Office. В первую очередь, это стандартные компоненты, входящие в состав Delphi 7. Данный способ взаимодействия с MS Office в дальнейшем рассмотрен не будет. Второй способ - это передача команд приложению MS Office через OLE-контейнер. Этот способ отличается удобством реализации и быстротой передачи команд. OLE-контейнер представляет собой своеобразную "очередь" команд, поступающих в приложения MS Office (ведь команды могут поступать сразу из нескольких источников).

Для создания нового OLE-объекта используется функция WinApi CreateOleObject, которая находится в модуле ComObj. В качестве единственного параметра для этой функции передается строка, содержащая имя создаваемого объекта. Для MS Word эта строка должна иметь значение 'Word.Application', а для MS Excel - 'Excel.Application'. Функция возвращает ссылку на созданный OLE-объект, по которой в дальнейшем можно использовать все методы и свойства, который предоставляет Word или Excel. Полный перечень этих методов описан в справке по VBA, которая входит в состав MS Office. Ниже рассмотрен пример программы, которая создает новый OLE-объект для приложения MS Word:

Var WordApp:Variant;

Begin

* * * * *

try

WordApp := CreateOleObject('Word.Application');

except       ShowMessage('Ошибка запуска MS Word');

Exit;     end;

WordApp.Visible := True;

* * * * *

End;

В этом коде встречается несколько ранее не рассматриваемых элементов. Во-первых, следует обратить внимание на тип Variant, который имеет переменная WordApp. Этот тип является комбинированным, и его можно рассматривать и как число, и как строку, и как массив, и как указатель. Во-вторых, следует обратить внимание на операторные скобки try-excepted-end. В такой записи сначала вызываются операторы, следующие после ключевого слова try, а в случае возникновения ошибки управление немедленно передается на операторы, следующие после ключевого слова excepted. Если ошибки не было, команды, заключенные между excepted и end игнорируются. Последний оператор используется для показа приложения.

После выполнения этого кода будет запущено указанное приложение MS Office. Следуюший шаг - добавление нового документа (или открытие старого). Это можно выполнить воспользовавшись командами:

NewDoc:=WordApp.Documents.Open(ADoc);

NewDoc:=MsExcel.WorkBooks.Open(ADoc);

или

NewDoc:=WordApp.Documents.Add;

NewDoc:=MsExcel.WorkBooks.Add;

В первом случае переменная ADoc содержит имя открываемого файла. Переменная NewDoc содержит ссылку на созданный или открытый документ. Она также должна иметь тип Variant.

Рассмотрим основные принципы добавления текста в документ и изменения его параметров (цвет, фон, шрифт и т.п.). Следует отметить, что механизм добавления текста в приложениях MS Word и MS Excel различается существенно, поэтому следует рассмотреть их отдельно.

В MS Word для добавления текста можно использовать свойство ActiveDocument.Range. Рассмотрим следующий код:

// Получить указатель на конец документа

// (переменная AR должна иметь тип Variant)

AR:= WordApp.ActiveDocument.range.end-1;

// Установить жирный шрифт

WordApp.ActiveDocument.Range(AR).Font.Bold := True;

// Сбросить курсив

WordApp.ActiveDocument.Range(AR).Font.Italic:=false;

//Установить размер шрифта - 12

WordApp.ActiveDocument.Range(AR).Font.Size := 12;

//Установить цвет шрифта - черный

WordApp.ActiveDocument.Range(AR).Font.color:= 0;

//Установить выравнивание по центру

WordApp.ActiveDocument.Range(AR).ParagraphFormat.Alignment:=1;

//Установить тип шрифта

WordApp.ActiveDocument.Range(AR).Font.Name:='Garamond';

//Вывести текст

WordApp.ActiveDocument.Range(AR).Text:=s+#13#10;

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

Следует помнить, что Excel представляет собой по своей структуре таблицу, и поэтому текст можно вводить в одну из ячеек, указывая ее адрес. Пример рассмотрен ниже:

// Получить указатель на ячейку

// (переменная Cel должна иметь тип Variant)

// (переменная MSExcel должна иметь тип Variant и она )

Cel:=MsExcel.Range['A1', 'A1'];

//Установить горизонтальное выравнивание по центру

Cel.HorizontalAlignment := 1;

//Установить вертикальное выравнивание по центру

Cel.VerticalAlignment := 1;

//Установить тип шрифта

Cel.Font.Name:='Garamond';

// Установить жирный шрифт

Cel.Font.Bold:=true;

// Сбросить курсив

Cel.Font.Italic:=false;

//Установить размер шрифта - 12

Cel.Font.Size := 12;

//Установить цвет шрифта - черный

Cel.Font.Color:=0;

//Вывести текст

Cel.Value:= s;

Заметим, что Excel, в отличие от Word, предоставляет пользователю еще одну возможность: расчет формул. Формула должна начинаться знаком "=". Для ввода формулы в документ Excel используется свойство Formula:

Cel.Formula:= '=A4*B4';