Visual Basic 6. Руководство разработчика

       

Терминология


OLE

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

OLE-объект

OLE-объект - это объект, который делается доступным для других приложений с помощью приложения-сервера OLE. Приложение-сервер OLE делает доступными объекты различных типов (или классов). OLE-объекты используются в приложе­ниях-контейнерах (container applications). На рис. 14.1 показано, как приложение Excel (в данном случае оно является приложением-сервером) делает доступной электронную таблицу (OLE-объект), которую можно вставить в документ Word (приложение-контейнер).

Рис. 14.1. Таблица Excel, встроенная в документ Word

Приложение-сервер

Это приложение, функциональные возможности которого доступны для приложения, разработанного в Visual Basic. Когда вашей программе требуется отредактировать документ, созданный приложением-сервером, она просто устанав­ливает связь, и приложение-сервер используется для редактирования.

Приложение-контейнер

Это приложение, которое содержит OLE-объекты. Объекты могут быть связаны (linked) или встроены (embedded). Сам по себе, контейнер также является объектом. Примером контейнера может служить форма (FRM) - объект, содержащий элементы управления. О контейнере говорят как о клиенте (client), потому что он использует средства OLE-сервера для получения доступа к объектам. В примере, показанном на рис 14.1, Excel является приложением-сервером, a Word — прило­жением-контейнером.

Встраивание объекта

Используя встраивание (часто называют внедрение),

можно вставить объект из одного приложения (приложения-сервера) в другое (приложение-контейнер). Встро­енный объект является копией оригинала, им можно манипулировать независимо от оригинала. Например, можно внедрить блок ячеек из таблицы Excel в документ Word. Для редактирования содержимого ячеек достаточно выполнить на них двойной щелчок, что приведет к вызову самой программы Excel. Если приложе­ние-контейнер позволяет выполнять редактирование на месте (in-place editing), то меню Excel появится прямо в нем (см. параграф "Оперативное редактирование").


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

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

Оперативное редактирование

Оперативное редактирование (in-place editing) также известно под названием оперативной активации. При этом функциональные возможности приложения-сервера встраиваются в приложение-контейнер, позволяя редактировать объект, с помощью меню и инструментальных средств сервера приложения. Например, если документ Word содержит блок ячеек из таблицы Excel, то двойной щелчок на любой ячейке этого блока приведет к замене меню Word на меню Excel. Это позволяет редактировать содержимое ячеек без переключения в другую прикладную программу.

Оперативное редактирование — это наиболее очевидное проявление того, что раньше называлось "заимствованием функциональных возможностей другой прикладной программы". Чтобы можио было выполнять оперативное редактиро­вание, контейнер и сервер должны поддерживать автоматизацию OLE (рассматривается ниже).

Автоматизация OLE

Этот метод позволяет программно управлять объектами, предоставляемыми другими приложениями, непосредственно из приложений, созданных в Visual Basic. Он является стандартом, определяющим способ распределения программного кода между приложениями и способ управления одними приложениями из других. Например, если блок ячеек из таблицы Excel копируется в документ Word, то происходит встраивание этого блока. Используя автоматизацию OLE, приложение может потребовать, чтобы Excel выполнил определенные вычисления и передал результаты в Word. Можно передать таблицу в Excel, чтобы выполнить обработку данных, которую нельзя сделать средствами Word, а затем возвратить таблицу в Word. Далее в главе рассмотрены примеры приложений Visual Basic, которые управляют объектами, созданными в Word и Excel.

Применение метода "перетащить-и-опустить" в OLE

Используя этот метод можно брать объекты, предоставляемые приложением-сервером и помещать их в приложение-контейнер. Например, можно встроить объект в документ Word, перетащив в него блок ячеек из таблицы Excel. В гл. 4 рассматривались способы программирования метода "перетащить и-опустить" Далее в этой главе будет рассмотрено, как выделить часть документа (или весь документ) и перенести его в окно элемента управления, который распознает перетаскиваемые данные и элемент управления, от которого они поступили.


Содержание раздела