
- •1.1. Порядок выполнения задания
- •1.2. Варианты заданий
- •2.1. Порядок выполнения задания
- •2.2. Варианты заданий
- •3.1. Порядок выполнения задания
- •3.2. Варианты заданий
- •4.1. Порядок выполнения задания
- •4.2. Варианты заданий
- •5.1. Порядок выполнения задания
- •5.2. Варианты заданий
- •6.1. Порядок выполнения задания
- •6.2. Варианты заданий
- •7.1. Порядок выполнения задания
- •7.2. Варианты заданий
- •8.1. Порядок выполнения задания
- •8.2. Варианты заданий
- •9.1. Порядок выполнения задания
- •9.2. Варианты заданий
- •10.1. Порядок выполнения задания
- •10.2. Варианты заданий
- •11.1. Порядок выполнения задания
- •11.2. Варианты заданий
- •12.1. Порядок выполнения задания
- •12.1.1. Общие понятия о реестре Windows.
- •12.1.2. Работа с реестром Windows в Delphi*.
- •12.2. Варианты заданий
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';