Средства технологии ole в Delphi icon

Средства технологии ole в Delphi


3 чел. помогло.
Смотрите также:
Реферат По дисциплине: ” Автоматизированные системы управления предприятием” Технологии...
Создание колонок...
Пуск/Программы/Borland Delphi/Delphi...
Работа с таблицами в средах программирования delphi и ms visual studio...
Рабочая программа учебной дисциплины (модуля) Распределенные офисные технологии...
Лабораторная работа №4. Разработка в Delphi программы для работы с субд interBase...
«Переменные, числа и строки»...
Программа тестирования 39 Лекция Понятие о среде Borland Delphi. Элементы окна...
Сохранение качества биодизельного топлива за счет совершенствования технологии его хранения 05...
Delphi подтверждает свою приверженность международному автоспорту и становится официальным...
Лекция №1. Введение...
Инструкция по установке сетевых лицензий с els (bls) 19 Установка bls 19...



Загрузка...
Средства технологии OLE в Delphi.


1. Основные понятия OLE и COM


OLE (Object Linking and Embedding – Связывание и Внедрение Объектов) – это технология, разработанная компанией Microsoft, реализующая механизм , дающий возможность вставить в приложение документ, подготовленный в другом приложении. OLE в свою очередь разработана на основе технологии COM (Component Object Model). COM – это спецификация, созданная для описания структуры COM-объектов. COM-объекты могут использоваться в любых языках программирования, вне зависимости от того, какая программная среда применялась при их создании.


Приложение, в которое можно вставить данные из другого приложения, называется клиентом OLE, а приложение-поставщик данных – сервером OLE.


^ Клиент может обратиться к доступному серверу OLE для выполнения такой операции, которую он сам выполнить не может. Например, если нам доступен OLE-сервер Microsoft Word, предоставляющий услугу отобразить документ в формате *.doc, то можно вызвать этот сервер из своего приложения и отобразить документ Word его средствами, без необходимости реализовать эту функцию самим.


Механизм OLE может действовать двумя способами:

  • ^ Внедрение (embedding). Внедрённый документ становится частью того документа, в который он вставляется.

  • Связывание (linking). Связанный объект в приложении представляет собой не сам документ, а только ссылку на него.


^ 2. Компонент OLE Container


Основным компонентом для работы с OLE является OLEContainer (находится на вкладке System). Этот компонент предоставляет приложению возможность связывать и внедрять объекты, подготовленные сервером OLE. Когда пользователь активирует объект, помещённый в контейнер OLE, управление переходит к приложению-серверу OLE, функциональность которого становится доступна из приложения, содержащего контейнер.


Контейнер OLE позволяет вставить данные из любого доступного OLE-сервера: текстовый документ Word или WordPad, таблицу Excel, точечный рисунок Paint, звук WAV и т.п.. Набор доступных серверов зависит от установленного на конкретном компьютере программного обеспечения.


Обычный способ работы с компонентом OleContainer состоит в том, что в ответ на требование пользователя открыть объект (выраженное, например, нажатием кнопки) приложение вызывает метод TOleContainer.InsertObjectDialog. Этот метод открывает диалоговое окно, содержащее список типов встраиваемых объектов, поддерживаемых системой в данный момент. Очевидно, что этот список зависит от набора доступных OLE-серверов.


Начиная с версии 5 в Delphi на палитре компонентов появилась вкладка Servers, на которой находится более трёх десятков компонентов, предназначенных для встраивания документов, подготовленных конкретными серверами OLE – приложениями Microsoft Office. Эти компоненты облегчают разработчику задачу управления офисными приложениями из своей программы по сравнению с написанием программного кода.


Рассмотрим пример приложения-клиента OLE.


Продемонстрируем, как использовать в своей программе компонент OleContainer. Напишем приложение, умеющее отображать точечные рисунки, документы Word, таблицы Excel и объекты прочих типов, обрабатываемых доступными OLE-серверами.


  1. Разместим на форме следующие компоненты: Panel, OleContainer, 1 кнопку Button. Панель мы предназначили для размещения на ней кнопок, так как всё остальное пространство главного окна будет отведено под отображение внедряемого документа. Поэтому установим свойство Panel1.Align равным alBottom и поместим кнопки на панель.


procedure TForm1.FormCreate(Sender: TObject);

begin

//размер контейнера устанавливаем по размеру формы

OleContainer1.Align:=alClient;

OleContainer1.Ctl3D:=False; //устанавливаем белый фон

end;


procedure TForm1.Button1Click(Sender: TObject);

begin

//отображаем диалог встраиваемого объекта:

OleContainer1.InsertObjectDialog;

end;


  1. Нажатие на кнопку Button1 «Вставить объект» приведёт к открытию диалогового окна, позволяющего выбрать тип объекта для внедрения или связывания. В этом диалоговом окне можно выбрать либо создание нового объекта (на форме будет отображён пустой документ соответствующего формата), либо загрузку объекта из существующего файла. Если вы попытаетесь открыть файл, не обслуживаемый ни одним из доступных OLE-серверов, то будет сгенерировано исключение EOleSysError, стандартная обработка которого состоит в выдаче сообщения об ошибке.

  2. Когда вы устанавливаете переключатель в положение «Создать из файла», становится доступен флажок «Связь». При установленном флажке встраиваемый объект будет связан (linked), при снятом, соответственно, - внедрён (embedded). Всегда доступен флажок «В виде значка». Его установка приводит к тому, что вместо объекта на форме будет показана иконка документов соответствуещего типа.

  3. При открытии какого-либо из существующих файлов вcтроенный документ будет доступен только для чтения. Чтобы перейти к его редактированию, нужно дважды щёлкнуть в любом месте области отображения документа. Запустится приложение-сервер OLE, а для отображения документа оно будет использовать окно нашего приложения.

  4. Для того, чтобы во встроенном в наше приложение документе отображалась строка меню, нужно поместить на форму рядом с компонентом OleContainer компонент MainMenu, затем снова собрать и запустить приложение, внедрить в него документ и открыть его двойным щелчком.


{Обратите внимание на отсутствие группы команд «Файл», в результате чего мы не сможем, например, сохранить отредактированный документ. Чобы устранить эту проблему, включите флажок «Связь», тогда документ одновременно будет загружен в ваше приложение и доступен для редактирования и сохранения в отдельном окне. При закрытии отдельного окна изменения отобразятся в вашем приложении.}


^ 3. Программный вызов сервера OLE


Рассмотрим один из способов linking использования OLE технологии на примере программного вызова таблицы Excel и ввода данных в Excel клиентским приложением. В качестве клиентского приложения будем использовать таблицу StringGrid, разработанную нами на практическом занятии OP_7.


Добавим на форму кнопку Button2 “Excel”, при нажатии которой будет вызвана таблица Excel и рассчитанные данные столбца «За год» будут экспортированы в столбец книги Excel.


В секцию Uses добавляем запись (модуль) ComObj (от названия технологии “COM”); в секцию глобальных переменных добавляем переменную ExcelApplication типа Variant. Ещё одна переменная типа Variant понадобится для представления текущего рабочего листа, её мы объявим локально внутри процедуры обработчика события нажатия кнопки “Excel”.


procedure TForm1.Button2Click(Sender: TObject);

var

Sheet : Variant;

I : Integer;

begin

ExcelApplication := CreateOLEObject('Excel.Application');

ExcelApplication.Visible:=True;

ExcelApplication.DisplayAlerts:=True;

//создаём новую рабочую книгу

ExcelApplication.Workbooks.Add;

//открываем первый рабочий лист

Sheet:=ExcelApplication.Workbooks[1].Worksheets[1];

//копируем записи из ячеек пятого столбца таблицы StringGrid

//во второй столбец таблицы Excel, начиная с третьей строки

for I:=0 to 5 do

Sheet.Cells[I+3,2]:=StringGrid1.Cells[5,I];

end;





Скачать 63.89 Kb.
оставить комментарий
Дата22.09.2011
Размер63.89 Kb.
ТипДокументы, Образовательные материалы
Добавить документ в свой блог или на сайт

плохо
  2
хорошо
  2
отлично
  3
Ваша оценка:
Разместите кнопку на своём сайте или блоге:
rudocs.exdat.com

Загрузка...
База данных защищена авторским правом ©exdat 2000-2017
При копировании материала укажите ссылку
обратиться к администрации
Анализ
Справочники
Сценарии
Рефераты
Курсовые работы
Авторефераты
Программы
Методички
Документы
Понятия

опубликовать
Загрузка...
Документы

Рейтинг@Mail.ru
наверх