Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ООП / Заочники / ООП_ЛабРаб_Методичка

.pdf
Скачиваний:
30
Добавлен:
08.06.2015
Размер:
770.97 Кб
Скачать

5

var n: OleVariant; begin

n := 'c:\doc\MyDoc.doc'; WordApplicationl.Documents.Open(n,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam);

WordDocumentl.ConnectTo(WordApplication1 .ActiveDocument) ; WordApplication1.Selection.TypeText ('Документ для печати'); WordDocument1.PrintOut;

n := 'dd.doc'; WordDocument1.SaveAs(n); WordDocument1.Close;

end;

Название файла документа заносится в переменную n типа OleVariant. Это требование интерфейса Vtable: большинство параметров различных функций должны отвечать формату языка Visual Basic. Затем происходит обращение к свойству Documents (массиву открытых документов) объекта-редактора WordApplication1 и выполняется метод открытия документа Open. У метода Open много параметров, но нам нужен только первый название документа. Для неиспользуемых параметров можно указать значение EmptyParam (это стандартная константа Delphi 7).

Затем объект WordDocument1 с помощью метода ConnectTo связывается с уже существующим интерфейсом текущего активного документа (открытого файла MyDoc.doc).

Теперь к данному объекту можно обращаться как к соответствующему активному документу редактора. Чтобы это действие выполнялось корректно, на этапе проектирования для объекта WordDocument1 в свойстве ConnectKind надо указать значение ckAttachToInterface (подключение к существующему интерфейсу).

Далее выполняется ввод строки (с помощью метода TypeText свойства Selection объекта WordApplication1), затем печать (метод PrintOut). После этого документ сохраняется под новым именем (dd.doc) и закрывается. На протяжении всего процесса редактор Word работает в фоновом режиме и на экране не отображается. Запущено только ядро сервера СОМ, ответственное за выполнение соответствующих методов.

3.2. В качестве примера использования из программы на Delphi электронной таблицы Excel решите следующую задачу: открыть существующий файл kl.xls, в ячейку (1,1) записать текст для печати, распечатать документ и закрыть файл.

Разместите на форме компоненты TExcelApplication (свойствам AutoConnect и Auto Quit присваивается значение True) и TExcelWorkbook (Книга Excel), для которого в свойстве ConnectKind указывается значение ckAttachToInterface. Добавьте кнопку Button2, по щелчку на которой будут выполнены описанные действия.

procedure TForm1.Button2Click(Sender: TObject); var n: OleVariant;

begin

n := 'c:\kl.xls'; ExcelApplication1.Workbooks.Add(n,0);

ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook); ExcelApplication1.Cells.Item[1,1].Value := 'Для печати'; ExcelWorkbook1.PrintOut;

ExcelWorkbook1.Save;

ExcelWorkbook1.Close;

end;

Впримере использован метод Add, а также свойство Cells (ячейки таблицы), описанное

вдокументации корпорации Microsoft по Excel97 (файл vbaxl8.hlp).

6

3.3.Разместите на форме объекты классов TOpenDialog, TEdit, TStringGrid и TButton для выбора, открытия и загрузки книги Excel. Напишите обработчик события OnClick для кнопки.

3.4.Разместите на форме кнопку и напишите для нее обработчик события OnClick, в котором вычисляются требуемые значения и сохраняются в книге Excel.

3.5.Разместите на форме объекты классов TOpenDialog, TEdit, TMemo и TButton для выбора, открытия и загрузки документа Word. Напишите обработчик события OnClick для кнопки.

3.6.Разместите на форме кнопку и напишите для нее обработчик события OnClick, в котором преобразуется исходный текст и сохраняется в документе Word.

4. Содержание отчета

Отчет готовится один на бригаду в рукописном или печатном виде и должен содержать следующие разделы:

-задание;

-листинг программы с подробными комментариями;

-копию экранной формы с реальным списком объектов заданной предметной области.

5. Контрольные вопросы

5.1.Что такое COM-технология?

5.2.Для чего предназначены серверы Автоматизации COM?

5.3.Что такое интерфейс и интерфейсный класс?

5.4.Расскажите об интерфейсе IUnknown.

5.5.Расскажите об интерфейсе IDispatch.

5.6.Как из Delphi-программы получить доступ к серверу Автоматизации с помощью раннего связывания?

5.7.Как из Delphi-программы получить доступ к серверу Автоматизации с помощью позднего связывания?

5.8.Что такое GUID?

Литература

1.Бобровский С.И. Delphi 7. Учебный курс. – СПб.: Питер, 2003. – 736 с.: ил.

2.Фаронов В.В. Delphi 5. Учебный курс. – М.: «Нолидж», 2000. – 608 с.: ил.

3.Архангельский А.Я. Разработка прикладных программ для Windows в Delphi 5 – М.: ЗАО «Издательство БИНОМ», 1999. – 256 с.: ил.