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

Пример работы с com (использование сервера WordXp) и ole.

{ Help по использованию сервера WordXP можно найти:

- SDK (Software Development Kit) набор средств для разработки ПО,

комплект программ для разработчика ПО;

- MSDN (Microsoft Developers Network) сеть для разработчиков, использующих платформу Microsoft;

три серии (MSDN Library, Professional и Universal).

-- msdn.microsoft.com -- msdn2.microsoft.com --

}

Предварительно на форму помещаем два компонента WordApplication и WordDocument (на закладке Servers) переименуем их в WordApp и WordDoc соответственно. Также помещаем на форму OleContainer (на закладке System).

procedure TForm1.Button1Click(Sender: TObject);

var fName: OleVariant;

T1: Table; // переменная таблицы

tformat, tappbrd: OleVariant; // переменные для форматирования таблицы

begin

// Установить соединение с сервером

WordApp.Connect;

// Добавляем новый документ на основе стандартного шаблона

// function Add(var Template: TOleVariant; var NewTemplate: TOleVariant;

// var DocumentType: TOleVariant; var Visible: TOleVariant): _Document;

// где Template - имя шаблона, по умолчанию используется Normal;

// NewTemplate - при значении true открывает как шаблон, false как документ;

// DocumentType - определяет типа документа (обычный, email, XML, web);

// Visible - определяет будет ли виден документ при его создании

WordApp.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam);

// Ассоцируем объект WordDoc с активным документом

WordDoc.ConnectTo(WordApp.ActiveDocument);

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

WordDoc.PageSetup.Orientation:=0;

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

WordDoc.PageSetup.LeftMargin:=71; WordDoc.PageSetup.TopMargin:=56.7;

WordDoc.PageSetup.RightMargin:=56.7; WordDoc.PageSetup.BottomMargin:=56.7;

// Делаем текущий стиль шрифта жирным

WordDoc.Paragraphs.First.Range.Bold:=1;

// Выравниваем текст по центру

WordDoc.Paragraphs.First.Range.ParagraphFormat.Alignment:=wdAlignParagraphCenter;

// Вставляем текст

WordDoc.Content.InsertAfter('Тема: COM-объекты');

// Вставляем новый параграф (перенос строки)

WordDoc.Content.InsertParagraphAfter;

// Выравниваем текст, находящийся в последнем параграфе по левому краю документа

WordDoc.Paragraphs.Last.Range.ParagraphFormat.Alignment:=wdAlignParagraphLeft;

// Для последнего параграфа устанавливаем наклонный стиль шрифта

WordDoc.Paragraphs.Last.Range.Italic:=1;

WordDoc.Content.InsertAfter('Работа с WordXP Server');

WordDoc.Content.InsertParagraphAfter;

// Создаем в документе таблицу 1 - строка и 8 - колонок

// function Add(const Range: Range; NumRows: Integer; NumColumns: Integer;

// var DefaultTableBehavior: OleVariant; var AutoFitBehavior: OleVariant): Table;

// где Range - область куда вставляется таблица;

// DefaultTableBehavior - автоподбор ширины столбцов;

// AutoFitBehavior - устанавливает правила для определения размера таблицы

T1:=WordDoc.Content.Tables.Add(WordDoc.Paragraphs.Last.Range, 1, 8, EmptyParam, EmptyParam);

// Устанавливаем стандартные свойства для таблицы

tformat:=wdTableFormatGrid1; tappbrd:=wdTableFormatApplyBorders;

// Выполняем автоматическое форматирование таблицы

// procedure AutoFormat(var Format: OleVariant; var ApplyBorders: OleVariant;

// var ApplyShading: OleVariant; var ApplyFont: OleVariant;

// var ApplyColor: OleVariant; var ApplyHeadingRows: OleVariant;

// var ApplyBorders: OleVariant; var ApplyLastRow: OleVariant;

// var ApplyFirstColumn: OleVariant; var ApplyLastColumn: OleVariant;

// var AutoFit: OleVariant);

T1.AutoFormat(tformat, tappbrd, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

// Устанавливаем ширину ячейки с координатами 1, 3 (строка, столбец)

T1.Cell(1,3).Width:=70;

// Записываем текст в третью ячейку таблицы

T1.Cell(1,3).Range.Text:='Ячейка №3';

// Сохранение документа Word

fName:='temp.doc'; WordDoc.SaveAs(fName);

// Загрузка документа в OleContainer

OleContainer1.CreateObjectFromFile('C:\temp.doc', false);

// Закрываем файл temp.doc

WordDoc.Close;

// Разрыв соединения с сервером

WordApp.Disconnect;

end;

Создание своих COM объектов и использование существующих можно посмотреть в книге Архангельского А.Я. «Программирование в Delphi

Архангельский. А.Я. «Delphi 2006. Справочное пособие»