Технология обмена данными через буфер
Обмен данными через буфер выполняется в следующей последовательности:
· выделяется объект, подлежащий копированию или перемещению;
· выделенный объект переносится в буфер обмена с помощью команды Копировать или Вырезать (например, через контекстное меню);
· указатель мыши устанавливается в место вставки объекта;
· объект вставляется в указанное место командой Вставить иди командой Специальная вставка (через контекстное меню или меню Правка).
Технология внедрения и связывания объектов ole
Представление о технологии OLE
Появление технологии OLE обусловлено необходимостью формирования документов из данных разного типа. Основное достоинство технологии OLE, которая была разработана фирмой Microsoft, состоит в том, что она не имеет ограничений и позволяет организовать передачу данных практически между любыми приложениями. Технология OLE определяется правилами (протоколом) взаимодействия Windows-приложений. Базовый вариант технологии OLE был впоследствии расширен до версии OLE 2.0, которая в настоящее время является наиболее употребительной.
Примечание. Аббревиатура OLE означает Object Linking and Embedding. переводится как связывание и внедрение объекта.
Технологию OLE полностью поддерживают не все Windows-приложения, а только те которые предназначены для разработки составных документов. Одни приложения можно использовать только в качестве приемника, другие — только в качестве источника, но есть приложения, которые могут выступать и в той, и в другой роли.
Например, текстовый редактор WordPad полностью обеспечивает работу по технологии OLE, так как он предназначен для создания текстовых документов, в которых могут быть рисунки, звуки, таблицы, видеоклипы и др. Графический редактор Paint предназначен для подготовки несложных рисунков, он не может работать по технологии OLE только как приложение-источник. Текстовый процессор Word представляет собой сложный комплекс и фактически включает в себя несколько приложений: редактор рисунков, редактор формул, текстовый редактор и др. Эти приложения по-разному используют технологию OLE Редактор формул действует только как приложение-источник (OLE-сервер), а текстовый редактор может выступать как в роли источника, так и в роли приемника (OLE-клиента). Просмотреть список действующих в системе OLE-серверов можно, выполнив команду Вставить объект (в среде Word эта команда включена в менюВставка).
Технология OLE обеспечивает пользователю возможность редактировать вставленный в составной документ объект средствами, которые предоставляет приложение-источник. OLE-объект всегда сохраняет связь с приложением-источником (эта связь активизируется двойным щелчком), но может и не быть связанным с документом-источником.
Технология OLE предусматривает два варианта обмена данными:
· внедрение объекта, при котором в документ-приемник вставляется сам объект. Для отображения на экране или распечатки документа OLE-объект не использует средств приложения-источника. Например, при переносе составного документа на другой компьютер OLE-объект будет отображаться нормально, даже если на этом компьютере нет соответствующего приложения-источника. Однако OLE-объект сохраняет связь с приложением-источником, которая позволяет обеспечить редактирование OLE-объекта внутри составного документа;
· связывание объекта, при котором в документ-приемник помещается не сам объект, а лишь ссылка на документ-источник. В этом случае OLE-объект будет связан не с приложением-источником, а с документом-источником, в котором находится этот объект. Эта связь позволяет изменить представление объекта в документе-приемнике, как только этот объект будет изменен в документе-источнике.
Внедрение объекта
При внедрении объекта в документ-приемник вставляется сам объект. Если этот объект получен копированием данных из некоторого документа-источника, то данные сохраняются на прежнем месте, а в документ-приемник вставляется их копия, причем связь между объектом и его копией не устанавливается. При этом наряду с командойВставить можно использовать командуСпециальная вставка.
Внедрить объект в документ можно несколькими способами:
· из открытого документа (с помощью команд Вставить и Специальная вставка);
· из файла (специальной командой вставки файла или импорта файла);
· непосредственным вызовом OLE-сервера (командой Вставить объект).
Связывание объекта
При просмотре или распечатке составного документа связанный объект ничем не отличается от внедренного. Различие проявляется лишь при редактировании объекта. Связанный объект всегда находится в документе–источнике, а в составном документе-приемнике хранится ссылка (указание местонахождения) на файл с этим документом.
Таким образом, при связывании объекта в документах–приемниках указываются ссылки на объект, а сам объект хранится в единственном экземпляре в документе–источнике. Любые изменения объекта, проводимые в документе-источнике, обязательно отражаются на представлении объекта в составных документах. При открытии составного документа необходимо позаботиться о том, чтобы присутствовали все файлы, в которых хранятся связанные с ним объекты, причем в точности в тех папках, в которыхоннаходились при связывании.
Технологией связывания объекта целесообразно пользоваться в следующих случаях:
· объект вставляется в несколько разных документов, и необходимо, чтобы любые изменения этого объекта отражались в этих документах;
· объект занимает слишком много места и затрудняет работу с составным документом;
· при недостатке внешней памяти.
Создание связанных объектов в составном документе возможно двумя способами:
· из открытого документа. При этом в составной документ можно включить лишь некоторый фрагмент из документа-источника; |
· из файла. При этом документ-источник полностью включается в составной документ.
Обратите внимание! Для связывания объекта необходимо, чтобы объект был сохранен в файле как документ или его части.
Поскольку связанные объекты хранятся отдельно от составного документа в своих документах-источниках, важно иметь сведения о связях составного документа. При автоматическом обновлении связанный объект в составном документе изменяется сразу, как только он изменился в документе-источнике. При ручном обновлении необходимо явное указание со стороны пользователя.