Представление о технологии OLE

Появление технологии OLE обусловлено необходимостью формирования документов из данных разного типа. Основное достоинство технологии OLE, которая была разработана фирмой Microsoft, состоит в том, что она не имеет ограничений и позволяет организовать передачу данных практически между любыми приложениями. Технология OLE определяется правилами (протоколом) взаимодействия Windows-приложений. Базовый вариант технологии OLE был впоследствии расширен до версии OLE 2.0, которая в настоящее время является наиболее употребительной.

Примечание. Аббревиатура OLE означает ObjectLinkingandEmbedding, что переводится как связывание и внедрение объекта.

Технологию OLE полностью поддерживают не все Windows-приложения, а только те, которые предназначены для разработки составных документов. Одни приложения можно использовать только в качестве приемника, другие - только в качестве источника, но есть приложения, которые могут выступать и в той, и в другой роли.

Например, текстовый редактор WordPad полностью обеспечивает работу по технологии OLE, так как он предназначен для создания текстовых документов, в которых могут быть рисунки, звуки, таблицы, видеоклипы и др. Графический редактор Paint предназначен для подготовки несложных рисунков, он не может работать по технологии OLE только как приложение-источник. Текстовый процессор Word представляет собой сложный комплекс и фактически включает в себя несколько приложений: редактор рисунков, редактор формул, текстовый редактор и др. Эти приложения по-разному используют технологию OLE. Редактор формул действует только как приложение-источник (OLE-сервер), а текстовый редактор может выступать как в роли источника, так и в роли приемника (OLE-клиента). Просмотреть список действующих в системе OLE-серверов можно, выполнив команду Вставить объект (в среде Word эта команда включена в меню Вставка).

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

Технология OLE предусматривает два варианта обмена данными:

внедрение объекта, при котором в документ-приемник вставляется сам объект. Для отображения на экране или распечатки документа OLE-объект не использует средств приложения-источника. Например, при переносе составного документа на другой компьютер OLE-объект будет отображаться нормально, даже если на этом компьютере нет соответствующего приложения-источника. Однако OLE-объект сохраняет связь с приложением-источником, которая позволяет обеспечить редактирование OLE-объекта внутри составного документа;

связывание объекта, при котором в документ-приемник помещается не сам объект, а лишь ссылка на документ-источник. В этом случае OLE-объект будет связан не с приложением-источником, а с документом-источником, в котором находится этот объект. Эта связь позволяет изменить представление объекта в документе-приемнике, как только этот объект будет изменен в документе-источнике.

Внедрение объекта

При внедрении объекта в документ-приемник вставляется сам объект. Если этот объект получен копированием данных из некоторого документа-источника, то данные сохраняются на прежнем месте, а в документ-приемник вставляется их копия, причем связь между объектом и его копией не устанавливается. При этом наряду с командой Вставить можно использовать команду Специальная вставка.

Внедрить объект в документ можно несколькими способами:

  • из открытого документа (с помощью команд Вставитьи Специальная вставка);
  • из файла (специальной командой вставки файла или импорта файла);
  • непосредственным вызовом OLE-сервера (командой Вставить объект).

Внедрение объекта из открытого документа выполняется следующим образом:

  • в приложении-источнике выделяется объект, который будет внедряться;
  • выделенный объект копируется в буфер обмена с помощью команды Копировать или Вырезать;
  • осуществляется переход в приложение-приемник, где формируется составной документ, и указатель мыши устанавливается в место вставки объекта;
  • вставляется объект с помощью команды Вставить или Специальная вставка;
  • при использовании команды Специальная вставка на экране появляется диалоговое окно "Специальная вставка" (рис. 12.15), в котором необходимо выбрать способ вставки данных как объекта, отметить кнопку выбора <Вставить> и нажать кнопку <ОК>. Данные можно вставлять в составной документ также в виде значка, для чего в диалоговом окне "Специальная вставка" следует отметить соответствующий переключатель.

Технология внедрения содержимого файла, которая рассматривается на примере приложения Word, состоит в следующем:

  • в составном документе указывается место внедрения;
  • вводится команда Файл из управляющего меню Вставка;
  • в диалоговом окне "Вставка файла" (рис. 12.16) устанавливаются необходимые параметры и выбирается имя файла. При этом не следует устанавливать переключатель <Связь с файлом>, чтобы содержимое файла оказалось внедренным;
  • нажать кнопку <ОК>.
 
 


Рис.12.15. Окно "Специальная вставка" в текстовом процессоре Word

Рис.12.16. Окно "Вставка файла" в текстовом процессоре Word

 
 


Для других приложений технология аналогична, отличие состоит в конкретных названиях команд.

В составной документ новый объект внедряется следующим образом:

  • в составном документе указывается место внедрения;
  • вводится команда Вставить объект (в среде Word - пункт Объект управляющего меню Вставка);
  • в диалоговом окне "Вставка объекта" (рис. 12,17) выбирается тип внедряемого объекта, т.е. приложение-источник. Флажок <Связь с файлом> устанавливать не следует, для того чтобы объект оказался внедренным;
  • нажимается кнопка <ОК>;
  • в приложении-источнике создается новый объект, который после выхода из приложения-источника будет вставлен в документ-приемник.

Рис.12.17. Окно "Вставка объекта" в текстовом процессоре Word

 
 


Объект, внедрённый по технологии OLE, можно редактировать средствами приложения-источника следующими способами:

  • выбрать соответствующую команду в управляющем или контекстном меню;
  • дважды щелкнуть левой кнопкой мыши на внедренном объекте.

Отметим, что если один и тот же объект внедряется в несколько документов, то в каждом документе будет храниться своя копия объекта. В этом случае хранение объекта и всех его копий требует дополнительного расхода внешней памяти. Кроме того, не сохраняется ни какой связи между копиями объекта, изменение одной из копий никак не влияет на остальные копии объекта.

Связывание объекта

При просмотре или распечатке составного документа связанный объект ничем не отличается от внедрённого. Различие проявляется лишь при редактировании объекта. Связанный объект всегда находится в документе-источнике, а в составном документе-приемнике храниться ссылка (указание местонахождения) на файл с этим документом (рис, 12.18).

 
 


Таким образом, при связывании объекта в документах-приёмниках указываются ссылки на объект, а сам объект хранится в единственном экземпляре в документе-источнике. Любые изменения объекта, проводимые в документе-источнике, обязательно отражаются на представлении объекта в составных документах. При открытии составного документа необходимо позаботиться о том, чтобы присутствовали все файлы, в которых хранятся связанные с ним объекты, причем в точности в тех папках, в которых они находились при связывании.

Технологией связывания объекта целесообразно пользоваться в следующих случаях:

  • объект вставляется в несколько разных документов, и необходимо, чтобы любые изменения этого объекта отражались в этих документах;
  • объект занимает слишком много места и затрудняет работу с составным документом;
  • при недостатке внешней памяти.

Создание связанных объектов в составном документе возможно двумя способами:

  • из открытого документа. При этом в составной документ можно включить лишь некоторый фрагмент из документа-источника;
  • из файла. При этом документ-источник полностью включается в составной документ;

Обратите внимание! Для связывания объекта необходимо, чтобы объект был сохранен в файле как документ или его часть.

Связывание объекта из открытого документа выполняется следующим образом:

  • в приложении-источнике выделяется объект, который будет связываться;
  • выделенный объект переносится в буфер обмена с помощью команды Копировать;
  • осуществляется переход в приложение-приемник, в котором формируется составной документ, и указатель мыши устанавливается в место вставки объекта;
  • вводится команда Специальная вставка;
  • в диалоговом окне "Специальная вставка" отмечается кнопка выбора <Связать>, указывается способ вставки объекта (в обычном виде или в виде значка) и нажимается кнопка <ОК>.

Связывание с файлом (на примере текстового процессора Word) состоит в следующем:

  • в составном документе указывается место вставки;
  • вводится команда Файлиз меню Вставка;
  • в диалоговом окне "Вставка) у файла" (см. рис. 12.16 )
  • станавливаются флажок <Связь с файлом> и другие необходимые параметры, затем выбирается документ, в котором хранится объект;
  • нажимается кнопка <ОК>.

Изменить связанный объект можно, отредактировав документ-источник, в котором он размещен. Это можно осуществить одним из двух способов. Первый способ - открыть документ-источник непосредственно в среде приложения-источника, второй способ - открыть документ-источник из составного документа, где находится связанный объект. Открытие можно осуществить либо с помощью контекстного меню, либо двойным щелчком кнопки мыши на этом объекте.

Поскольку связанные объекты хранятся отдельно от составного документа в своих документах-источниках, важно иметь сведения о связях составного документа. Просмотреть, обновить и изменить связи составного документа можно в диалоговом окне "Связи" ("Links"), которое, например, в приложении Word вызывается командой Связи из меню Правка (рис. 12.19). Это диалоговое окно содержит информацию о связях данного объекта:

  • спецификацию (путь) файла;
  • тип или формат объекта;
  • режим обновления объекта в составном документе - автоматическое или ручное (по запросу).

При автоматическом обновлении связанный объект в составном документе изменяется сразу, как только он изменился в документе-источнике. При ручном обновлении необходимо явное указание со стороны пользователя.

 

 
 


Рис.12.19. Диалоговое окно "Связи" в текстовом процессоре Word

 



OCUMENT_ROOT"]."/cgi-bin/footer.php"; ?>