20165

ИСПОЛЬЗОВАНИЕ КОМПОНЕНТ OLE

Лекция

Информатика, кибернетика и программирование

1 был введен новый метод передачи информации в виде объектов между 16разрядными приложениями основанный на модели Object Linking and Embedding OLE 1. Протокол OLE 2. OLE 2.

Русский

2013-07-25

68 KB

14 чел.

ИСПОЛЬЗОВАНИЕ КОМПОНЕНТ OLE.

Взаимодействие процессов прошло долгий путь от своих истоков в Windows – динамического обмена данными (Dynamic Data Exchange -DDE). DDE позволял передавать данные между приложениями Windows путем установки диалога DDE между двумя приложениями, используя в качестве посредника буфер обмена Windows. В Windows 3.1 был введен новый метод передачи информации в виде объектов между 16-разрядными приложениями, основанный на модели Object Linking and Embedding (OLE) 1.0. Этот обмен по прежнему осуществлялся через буфер обмена.

Протокол OLE 2.х основан на компонентной модели обекта (COM – Component Object Model) фирмы Microsoft. OLE 2.х привнес операции drag-and-drop (перенеси и отпусти) в ориентированный на буфер обмена OLE. OLE 2.х также ввел автоматизацию OLE и программируемые объекты – базу для архитектуры компонентов Windows. Элементы управления OLE позволили Microsoft и независимым поставщикам создавать компоненты специального назначения для пополнения стандартного набора собственных элементов управления, присущих конкретной СУБД.

Определение OLE.

 Протокол OLE является представителем класса компьютерных операций, обеспечивающих связь между процессами (interprocess communications — IPC). Операции IPC позволяют различным приложениям получать и отправлять данные другим приложениям, используя предопределенную процедуру. Основным средством для операций IPC в Windows служит Буфер обмена; в настоящее время данные пересылаются между работающими приложениями в основном через него, если не используются операции чтения и записи дисковых файлов.

В Windows определен ряд стандартных типов данных, для которых возможны операции копирования и вставки из Буфера обмена. Протокол OLE использует следующие типы данных: растровые и векторные рисунки, простой и форматированный текст, цифровые звуки и другие. Протокол OLE значительно улучшен по сравнению с DDE — пользоваться OLE намного проще, и в будущих версиях приложений Windows он полностью заменит DDE. Операции OLE отличаются от традиционного копирования и вставки, осуществляемых клавишами <Ctrl>+<C> и <Ctrl>+<V> или средствами DDE, тем, что OLE кроме непосредственно данных содержит значительный объем информации об источнике данных. Например, объект OLE, скопированный в Буфер обмена из Excel 97, содержит следующую информацию:

  •  Название приложения, откуда скопированы данные (в данном случае Excel).
  •  Тип данных — рабочий лист, модуль или лист диаграммы.
  •  Полный путь к файлу, если данные были взяты с диска или сохранены на нем.
  •  Имя, назначенное системой рабочему листу или листу диаграмм, если данные не были извлечены из файла или не были сохранены в файле. Обычно это имя представляет собой длинную комбинацию букв и цифр.
  •  Если копируется только часть объекта, название или координаты диапазона данных.
  •  Представление объекта в формате Windows Metafile (.WMF). Если объект не является рисунком, то его представлением будет значок того приложения, в котором объект бьш создан.
  •  Для файловых объектов OLE 2.1 к передаваемым данным добавляются свойства объекта, которые можно просмотреть и изменить в диалоговом окне "Свойства".

Необходимость OLE

Понимание принципов протокола OLE важно потому, что он является способом добавления рисунков в формы и отчеты, a также ввода и редактирования информации в полях объектов OLE. Преимущество использования OLE для применения и хранения нетекстовой информации (вместо встроенной обработки графики, которая используется в некоторых СУБД) заключается в следующем:

  •  Можно воспользоваться любым приложением, обрабатывающим рисунки, в качестве сервера OLE для создания и редактирования растровых рисунков, например, графическим редактором Windows 95 и NT 4.0 Paint или достаточно сложными редакторами для работы с фотодокументами, такими как Adobe Photoshop и Corel PhotoPAINT.
  •  Можно внедрить или связать векторные рисунки, созданные серверами OLE, такими как Visio 4.0, или профессиональными приложениями для создания иллюстраций, например CorelDRAW! 6.0. Оба эти приложения являются 32-разрядными серверами OLE 2.1, разработанными для Windows 95.
  •  Ликвидированы накладные расходы, связанные с дополнительным включением в приложение растровых графических редакторов. Независимые графические редакторы и функции рисования редко обладают такими же возможностями, как самостоятельные серверы объектов OLE.
  •  Нет необходимости устанавливать набор фильтров для экспорта и импорта разных типов файлов, т.к. серверы OLE предоставляют такую возможность.
  •  Можно экспортировать данные из полей объектов OLE таблиц  или из присоединенных и свободных рамок объектов в другие приложения через Буфер обмена. Присоединенные рамки объектов отображают представление объектов OLE из полей объектов OLE таблиц , а свободные — статических объектов OLE, например, эмблема компании для оформления отчетов.
  •  В поле объекта OLE можно хранить разнообразные объекты: в него можно внедрить или связать с ним файл звукозаписи (.WAV), музыку в формате MIDI (музыкальный инструментальный цифровой интерфейс), файлы анимации (.FLI и .МММ) и видеоклипы (.AVI). Однако следует заметить, что для встраивания видеоклипов и файлов звукозаписи большой длительности звучания требуется много дисковой памяти.
  •  Можно внедрить данные в таблицы, формы и отчеты или связать объект OLE с файлом, где хранятся данные. Поведение объекта OLE 2.1 будет различным для этих двух способов.

Сравнение внедрения и связывания

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

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

Еще одним достоинством связывания некоторых объектов, данные которых хранятся в файлах, является экономия места на диске, которое не будет тратиться на копии этих файлов в базе данных. 

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

Связывание растрового рисунка не экономит места на диске. Представление рисунка, хранимое и файле .BMP, занимает столько же байт, сколько исходный рисунок, или даже больше, если файл с. рисунком хранится в сжатом формате, т. е. .PCX, .GIF или ..IPG. Если же соответствующее приложение-сервер OLE позволяет заменять рисунок его уменьшенной копией (значком), то экономия имеет место. Уменьшенная копия рисунка, как правило, содержит меньше цветов (нa точку изображения отводится 8 бит вместо 24).

Примечание OLE 2. предоставляет ограниченную возможность обновления связей с перемещенными файлами, однако неразумно полагаться на текущую версию (OLE 2.1) в том, что касается поддержания связей с перемещенными файлами. Если объект содержится в свободной рамке объекта, то можно изменить значение свойства Документ-источник так, чтобы оно указывало на новый путь к файлу, а если в присоединенной, то необходимо открыть файл, скопировать его содержимое и буфер обмена и затем восстановить связь командой Специальная вставка.

Редактирование объекта OLE 2.х по месту

Одним из преимуществ внедрения объектов по сравнению со связыванием является возможность редактирования внедренных объектов но месту. Редактирование на месте приводит к тому, что исходное приложение внедренного объекта "захватывает" приложение-контейнер. Объект OLE активизируется двойным щелчком левой кнопки мыши в области рамки объекта, в которой отображается объект. При активизации внедренного объекта OLE 2.+ меню исходного приложения объекта заменяют меню СУБД с такими же именами, и этот процесс называется пересадка (grafting). Если исходное приложение имеет меню, которых нет в данной СУБД, то они добавляются. Пользователю предоставляется полный контроль над внедренным объектом, и он может выполнять над ним все те же операции, которые были бы доступны, если бы он открыл файл, содержащий объект, непосредственно в приложении-сервере.

Редактирование на месте возможно только для внедренных объектов OLE 2.+ и невозможно для связанных. Двойным щелчком левой кнопки мыши по изображению связанного объекта OLE 2.+ вызывается приложение-источник и появляется его окно. В этом отношении связанные объекты OLE 2.+ ведут себя так же, как внедренные и связанные объекты OLE 1.0.

Различия между OLE и DDE

OLE как бы добавляет новое измерение к операциям динамического обмена данными (DDE) между приложениями, работающими в среде Windows. Различия между технологиями передачи данных OLE и DDE иллюстрируются на рис.1. Протокол DDE пересылает данные (свойства) из сервера в текстовые поля, метки и другие элементы управления, способные хранить текст и числа; OLE передает данные и методы из сервера только через свободные и присоединенные рамки объектов.

  Программный модуль                                                                Форма или отчет

рис.1 Иллюстрация различий между DDE и OLE

Использование DDE всегда требует программирования. Составление программ для использования протокола DDE в любом приложении Windows является сложным процессом, и всегда было таковым. Известно, что обмен данными DDE является ненадежным. Использование основополагающих свойств OLE не требует программирования. Более того, в большинстве случаев обмен данными посредством OLE является более надежным чем при использовании DDE. Простые операции OLE в СУБД типа Visual FoxPro или Access используют команды меню "Правка, Специальная Вставка" (Edit, Paste Special) и "Вставка, Объект" (Edit, Insert Object). Объекты OLE из СУБД можно копировать в буфер обмена при помощи меню "Правка", т. о. и другие приложения-клиенты OLE смогут их использовать. Корпорация Microsoft проектировала OLE специально для пользователей, а не для программистов. OLЕ 2.х и ActiveX вводят новую методологию программирования, называемую автоматизацией, достоинство которой заключается в возможности изменять значения свойств объекта и применять его методы, пользуясь стандартным синтаксисом Visual Basic for Application. Автоматизация является основой построения элементов управления ActiveX и других объектов серверов  OLE.

ОБМЕН ДАННЫМИ ПРИ ПОМОЩИ АВТОМАТИЗАЦИИ И ЭЛЕМЕНТОВ УПРАВЛЕНИЯ ActiveX.

Автоматизация (OLE Automation) является технологией, которая позволяет программировать объекты доступа к данным. Другими словами OLE Automation определяет способ управления командами прикладной программы из другой прикладной программы.

Прикладные программы, поддерживающие OLE Automation, имеют соответствующие объекты, посредством которых можно управлять работой прикладной программы из другой прикладной программы, используя соответствующий язык программирования. Для всех приложений Microsoft с этой целью можно использовать возможности Visual Basic for Application. OLE Automation для управления объектами использует OLE-серверы, т.е. программы, которые могут предоставить другим программам возможность использовать свои объекты.

Чтобы получить представление о работе с технологией OLE Automation, необходимо разобраться в классификации компонентов автоматизации, которые могут быть использованы в написании приложений систем управления базами данных.

Классификация компонентов автоматизации.

1. Полные серверы (full servers) – это самостоятельные приложения, такие как 32-разрядные версии Ms Excel97 и Word97, к которым добавлены возможности автоматизации. Полный сервер создает внедряемый объект, который можно отобразить в свободной и связанной рамке объекта (например, в объекте OLEBoundControl СУБД Visual FoxPro). Полные серверы называются также локальными серверами (local Servers), поскольку сервер такого типа должен размещаться на том же компьютере, что и приложение-клиент автоматизации.

2. Серверы автоматизации (Automation servers) – это серверы, которые не являются внедряемыми объектами.  Например, Access 97 является сервером автоматизации.

3. Мини-серверы (Mini-servers) – приложения, которые могут быть запущены только из приложений-клиентов автоматизации, например, Ms Graph 8.0. Мини-серверы аналогичны маленьким приложениям – апплетам OLE 1.0, поставляемым в комплекте Word for Windows и др. ранних приложений Ms OLE 1.0. Мини-серверы OLE 2.х предоставляют объекты посредством библиотеки типов или объектов. Чтобы приложение можно было назвать мини-сервером, оно должно представлять собой выполнимый файл .EXE, обладающий способностью раскрывать окно приложения. Мини-серверы, отображающие объеты определенного класса, например, видеоклипы, называются средствами просмотра.

Возможности отображения данных с помощью MS Graph рассмотрим на примере формы Visual FoxPro, в которой пользователь может анализировать изменение данных с помощью графика. Для этого в форму добавляется объект OleBoundControl, при нажатии на кнопку Построить вызывается метод Click и выполняется соответствующая процедура, с помощью которой в элемент управления OLEBoundControl внедряется диаграмма MS Graph:

#DEFINE CRLF CHR(13)+CHR(10)

#DEFINE TAB  CHR(9)

SET SAFETY OFF

* Запрос для получения наиболее актуальной информации

* Результат запроса сохраняем в курсоре WTEMP

SELECT Ffte.pogresh,Ffte.shortname  FROM datafte!ffte  ORDER BY Ffte.pogresh;

INTO CURSOR wtemp

* Формируем оси графика с соответствующими данными, которые будут отображаться на графике

sele wtemp

cGData = ""+tab+"Погрешность"+crlf

scan

cGData = cGData+alltrim(shortname)

cGData = cGData+tab

cGData = cGData+str(pogresh)+crlf

endscan

* Создаем таблицу с одним полем типа General, в которое будет помещен объект OLE

create table foo (gen1 g)

SET SAFETY ON

sele foo

append blank

* Связываем поле GEN1 таблицы FOO с источником (источник - MS Graph),

* т.е. задаем для объекта OLE класс OLE

* Задаем источник данных, к которому привязывается объект  OLE BoundControl

THISform.LockScreen = .T.

append general gen1 class "msgraph.chart" DATA m.cGData

THISform.OleBoundControl1.ControlSource = "gen1"

THISform.OleBoundControl1.HasLegend = .F.

THISform.LockScreen = .F.

THISform.refresh

4. Служебные серверы (process servers) – это подкласс серверов Automation, используемых для выполнения функций, которые не содержат взаимодействия с пользовательским интерфейсом. Существуют две разновидности служебных серверов: внешние (Out of Proc(ess)) и внутренние (In Proc(ess)). Внешние серверы – это выполнимые файлы, которые запущены в пространстве своего собственного процесса, т.е. имеют свой собственный блок зарезервированной памяти. Например, полные серверы и мини-серверы являются внешними серверами. Внутренние серверы используют память совместно с приложением-клиентом. Элементы управления ActiveX представляют собой внутренние серверы.

Внешние серверы взаимодействуют с приложением-клиентом при помощи упрощенного механизма удаленного вызова процедур LRPC (Lightweight Remote Procedure Calls), а внутренние серверы, называемый также OLE DLL, используют вызовы обычных функций Windows. Поэтому внутренние серверы значительно быстрее реагируют на инструкции клиента, чем внешние. Преимуществом внешнего сервера является возможность его размещения на удаленном компьютере и взаимодействие с ним посредством DCOM (распределенной COM, включенной в Windows NT 4.0, предоставляет клиентам доступ к объектам COM на сервере посредством сетевого взаимодействия; COM (Common Object Model) - компонентная модель объектов -  спецификация для проектирования компонентов (объектов) программного обеспечения многократного использования, которые можно комбинировать для создания полезных приложений, таких как клиентские части баз данных). В этом случае внешний сервер называется удаленным объектом автоматизации (Remote Automation Object).

Одно из преимуществ автоматизации заключается в том, что возможна работа с управляемыми полными серверами и мини-серверами без создания видимого экземпляра сервера автоматизации. В отличие от DDE, где требуется, чтобы приложения-серверы были запущены в окне или как значки, OLE Automation автоматически запускает приложение. Если у сервера нет инструкции активизировать окно, сервер невидим; в списке задач имя такого сервера обычно не содержится.

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

5. Элементы управления ActiveX (.OCX) – это мини-серверы особого вида, которые кроме методов и свойств, предоставляют  еще и события. Они представляют собой объектно-ориентированный эквивалент специальных элементов управления Visual Basic 3.0 и более ранних версий. Элемент управления ActiveX внедряется в форму, после чего его можно программировать, используя те же операторы, которые применяются для других элементов управления конкретной СУБД, таких как поля, списки и т.д.

Большинство элементов управления ActiveX в режиме выполнения выводятся на экран – например, элемент управления Tree View Control. Данный элемент позволяет отображать иерархические списки специальных оюъектов Node, каждый из которых может содержать текст и, при необходимости – изображение. Этот элемент может использоваться для отображения содержания каких-либо документов, списков файлов, каталогов и т.д. Этот элемент предоставляет возможности для программного управления сворачиванием и раскрытием иерархии пунктов, перемещением и выбором пунктов в списке, в том числе используя возможности последовательного поиска. Для формирования списка необходимо в коллекцию объектов Node добавлять объекты с помощью метода Add, имеющего следующие аргументы:

  •  порядковый номер или ключ объекта более высокого уровня
  •  относительное положение добавляемого объекта к объекту, идентифицированному в предыдущем аргументе (1-последний в списке на том же уровне, 2-после указанного на том же уровне, 3-перед указанным на том же уровне, 4-подчиненный к указанному (по умолчанию))
  •  ключ добавляемого объекта
  •  текст, выводимый в списке

  


 

А также другие работы, которые могут Вас заинтересовать

51443. Выбор модели методом шаговой регрессии 33 KB
  Составить множество регрессоров, включив в него факторы, квадраты факторов и их взаимные произведения Проверить условие Fk1k2 Fpk1k2 выполнение которого свидетельствует о целесообразности произведенного усложнения модели что обусловило существенное увеличение точности аппроксимации моделью исходных данных.
51444. Выделение тренда и прогнозирование временного ряда в EXCEL 44 KB
  В поле диаграммы вызвать контекстное меню для элемента Ряд данных выбрать команду Добавить линию тренда. В окне Линия тренда выбрать линейный вид тренда. На вкладке Параметры исправить название линии тренда и отметить: Показать уравнение тренда; Добавить коэффициент аппроксимации.
51445. Оценка надежности прогноза по МНК 68 KB
  Для прогноза временного ряда использовать два уравнения тренда со степенью полинома : 1 и со степенью полинома : . Для оценки надежности прогноза для трех точек по двум моделям 1 и 2 использовать встроенную функцию ТЕНДЕНЦИЯY X 3_прогнозных_ значения константа. Рассчитать квадраты невязок для трех точек прогноза на всех этапах.
51446. Сглаживание временных рядов с помощью скользящего интервала. Применение статистики Дарбина-Уотсона 76.5 KB
  Значение тренда в средней точке СИ равно средневзвешенному значению точек исходного ряда: 1 где весовые коэффициенты. Для степени полинома весовые коэффициенты. Весовые коэффициенты для сглаживания p=2. NN q Sum Весовые коэффициенты...
51447. Маркетинг. Социально-экономические основы маркетинга 60.94 KB
  Выражаются в товарах, способных удовлетворить нужду тем способом, который присущ данному укладу общества. Для удовлетворения потребностей, производители предпринимают целенаправленные действия, стимулирующие действия обладать товаром, таким образом производитель может способствовать формированию потребности, но не может создать нужду, т.к она уже существует.
51448. Силові перетворювачі автоматизованих електроприводів. Методичні вказівки 44 KB
  Мета роботи: закріплення знань про принципи дії однофазних однополуперіодних схем випрямлення, розрахунок, моделювання та дослідження часових діаграмм. Теоретичні відомості Випрямлячем називається статичний перетворювач електричної енергії змінного струму в постійний струм. Перетворювач являє собою електричний агрегат, силова частина якого складається в загальному випадку, з наступних основних вузлів
51449. ПРОЕКТИРОВАНИЕ ЛОКАЛЬНОЙ ВЫЧИСЛИТЕЛЬНОЙ СЕТИ ОРГАНИЗАЦИИ С ПРИМИНЕНИЕМ СТРУКТУРИРОВАННОЙ КАБЕЛЬНОЙ СИСТЕМЫ 3.01 MB
  В курсовом проекте предлагается спроектировать ЛВС организации с применением структурированной кабельной системы. Назначение проектируемой ЛВС – обеспечение возможности информационного обмена между рабочими станциями организации.