Использование компонента Object Linking and Embedding
Метод передачи информации в виде объектов между 16-разрядными приложениями, основанный на модели Object Linking and Embedding (OLE). Автоматизированное управление командами прикладной программы из другой программы. Запросы для получения информации.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лекция |
Язык | русский |
Дата добавления | 14.02.2014 |
Размер файла | 46,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1. Использование компонента 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 является представителем класса компьютерных операций, обеспечивающих связь между процессами (interprocess communications -- IPC). Операции IPC позволяют различным приложениям получать и отправлять данные другим приложениям, используя предопределенную процедуру. Основным средством для операций IPC в Windows служит Буфер обмена; в настоящее время данные пересылаются между работающими приложениями в основном через него, если не используются операции чтения и записи дисковых файлов.
В Windows определен ряд стандартных типов данных, для которых возможны операции копирования и вставки из Буфера обмена. Протокол OLE использует следующие типы данных: растровые и векторные рисунки, простой и форматированный текст, цифровые звуки и другие. Протокол OLE значительно улучшен по сравнению с DDE -- пользоваться OLE намного проще. Операции OLE отличаются от традиционного копирования и вставки, осуществляемых клавишами <Ctrl>+<C> и <Ctrl>+<V> или средствами DDE, тем, что OLE кроме непосредственно данных содержит значительный объем информации об источнике данных. Например, объект OLE, скопированный в Буфер обмена из Excel 97, содержит следующую информацию:
Название приложения, откуда скопированы данные (в данном случае Excel).
Тип данных -- рабочий лист, модуль или лист диаграммы.
Полный путь к файлу, если данные были взяты с диска или сохранены на нем.
Имя, назначенное системой рабочему листу или листу диаграмм, если данные не были извлечены из файла или не были сохранены в файле. Обычно это имя представляет собой длинную комбинацию букв и цифр.
Если копируется только часть объекта, название или координаты диапазона данных.
Представление объекта в формате Windows Metafile (.WMF). Если объект не является рисунком, то его представлением будет значок того приложения, в котором объект был создан.
Для файловых объектов OLE 2.1 к передаваемым данным добавляются свойства объекта, которые можно просмотреть и изменить в диалоговом окне "Свойства".
Понимание принципов протокола 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 можно хранить разнообразные объекты: в него можно внедрить или связать с ним файл звукозаписи (.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.x меню исходного приложения объекта заменяют меню СУБД с такими же именами, и этот процесс называется пересадка (grafting). Если исходное приложение имеет меню, которых нет в данной СУБД, то они добавляются. Пользователю предоставляется полный контроль над внедренным объектом, и он может выполнять над ним все те же операции, которые были бы доступны, если бы он открыл файл, содержащий объект, непосредственно в приложении-сервере.
Редактирование на месте возможно только для внедренных объектов OLE 2.x и невозможно для связанных. Двойным щелчком левой кнопки мыши по изображению связанного объекта OLE 2.x вызывается приложение-источник и появляется его окно. В этом отношении связанные объекты OLE 2.x ведут себя так же, как внедренные и связанные объекты 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.
2. Технология Ole Automation
Автоматизация (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. Мини-серверы аналогичны маленьким приложениям - апплетам 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)
#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 grafik (gen1 g)
sele grafik
append blank
Связываем поле GEN1 таблицы GRAFIK с источником (источник - MS Graph), т.е. задаем для объекта OLE класс OLE. Задаем источник данных, к которому привязывается объект OLE BoundControl
append general gen1 class "msgraph.chart" DATA m.cGData
THISform.OleBoundControl1.ControlSource = "gen1"
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, каждый из которых может содержать текст и, при необходимости - изображение. Этот элемент может использоваться для отображения содержания каких-либо документов, списков файлов, каталогов и т.д. Предоставляет возможности для программного управления сворачиванием и раскрытием иерархии пунктов, перемещением и выбором пунктов в списке, в том числе используя возможности последовательного поиска. Список выводится в окне, которое имеет полосы прокрутки. Элемент управления TreeView использует элемент управления ImageList для хранения изображений. Для формирования списка необходимо в коллекцию объектов Node добавлять объекты с помощью метода Add, имеющего следующие аргументы:
порядковый номер или ключ объекта более высокого уровня
относительное положение добавляемого объекта к объекту, идентифицированному в предыдущем аргументе (1-последний в списке на том же уровне, 2-после указанного на том же уровне, 3-перед указанным на том же уровне, 4-подчиненный к указанному (по умолчанию))
ключ добавляемого объекта
текст, выводимый в списке
ключ изображения, использованный в объекте ImageList
ключ изображения, используемого для выбранного пункта в списке.
Для определения выбранного пункта в списке можно использовать свойство SelectedItem.
Размещено на Allbest.ru
...Подобные документы
Описания объектов, свойств, методов, формы и основных модулей текста программы в среде Delphi. Создание Windows-приложения на алгоритмическом языке Object Pascal в среде визуального программирования. Анализ результатов тестирования программного продукта.
курсовая работа [2,4 M], добавлен 27.08.2012Разработка алгоритма и написание программы на языке Object Pascal, предназначенной для расчета траверса крюка мостового крана на изгиб. Определение расчетных размеров крана с помощью табличного процессора Microsoft Excel. Блок-схема и алгоритм расчета.
курсовая работа [519,3 K], добавлен 03.06.2010Значение программы Ехсеl для обработки статистической информации и представления данных в виде графиков и диаграмм. Использование способности программы производить математические вычисления по заданным формулам для определения заработка шоферов.
контрольная работа [3,0 M], добавлен 26.01.2010Сущность, понятие баз данных. Краткая характеристика MS Access. Обеспечение сохраняемости объектов. Архитектура Object Data Management Group. Объектные расширения реляционных СУБД. Концептуальные особенности систем управления активными базами данных.
курсовая работа [48,1 K], добавлен 17.05.2013Разработка программы обработки типизированных файлов с кодом на языке Object Pascal, с использованием компонентов Delphi для ввода и вывода данных. Разработка экранных форм и алгоритма программы. Описание программных модулей и инструкция оператору.
курсовая работа [1,5 M], добавлен 08.02.2011Cоздание и описание логической модели автоматизированной системы обработки информации. Проектирование структуры системы в виде диаграмм UML. Анализ программных средств разработки программного обеспечения и интерфейса. Осуществление тестирования программы.
дипломная работа [2,5 M], добавлен 25.01.2015Вычисление площади геометрических фигур с помощью интегрального исчисления. Основные свойства площади как функции. Разработка алгоритма работы программы на языке Object-Pascal в среде Delphi. Текст программы, порядок ее запуска и полученный результат.
курсовая работа [281,0 K], добавлен 06.06.2013Блок-схема работы программы генерации ключевой информации, внешний вид ее основного окна. Построение гистограмм распределения элементов и проверки серий. Тестирование программы на работоспособность и возможность получения криптографически стойких ключей.
презентация [561,0 K], добавлен 16.10.2013Использование электронно-вычислительной техники для сбора, накопления, обработки и передачи информации. Разработка программы "Телефонный справочник" на Паскале: ввод и редактирование теста программы, трансляция и отладка. Блок-схема, листинг программы.
контрольная работа [61,2 K], добавлен 26.06.2010Формирование текстового документа с именем goto.cpp., содержимое которого взято из русифицируемой справки MSDN по оператору безусловного перехода. Выбор оптимального алгоритма решения задачи, разработка интерфейса, отладка и тестирование программы.
курсовая работа [499,8 K], добавлен 10.11.2009Методы грамматического разбора. Разработка структуры учебного транслятора на базовом языке программирования Object Pascal в среде объектно-ориентированного визуального программирования Borland DELPHI 6.0 с использованием операционной системы Windows XP.
курсовая работа [493,8 K], добавлен 12.05.2013Автоматизация учета и управления, использование тиражных программных продуктов системы "1С: Предприятие". OLE - технология управления и обмена информацией между программным интерфейсом другими приложениями. Установка среды разработки, совместимой с 1С.
курсовая работа [558,9 K], добавлен 20.03.2013Программное обеспечение как один из видов интеллектуальной собственности, принципы разработок. Общая технология программирования, используемые языки и их функционал. Введение в Object Pascal, его назначение, структура и основные элементы, основы работы.
учебное пособие [2,0 M], добавлен 12.04.2012Разработка прикладной программы для операций создания и уничтожения объектов в системе визуального объектно-ориентированного программирования C++Builder. Алгоритм работы программы, набор функций и операторов, компонент и модулей, кнопки событий.
дипломная работа [672,5 K], добавлен 16.08.2012Разработка программы тестирования для выявления акцентуаций типа человека в среде Delphi и Microsoft Access. Проектирование алгоритма реализации модели. Описание программы и модулей, руководство пользователя. Меры обеспечения информационной безопасности.
дипломная работа [2,7 M], добавлен 15.06.2012Защита от несанкционированного доступа. Классификация автоматизированных систем и требования по защите информации. Средство защиты информации от несанкционированного доступа Secret Net 6.0. Разработка интерфейсной части программы, целевых функций.
дипломная работа [1,2 M], добавлен 20.12.2013Элементы языка Object Pascal: идентификаторы, константы, переменные, выражения. Структура проекта Delphi. Операторы и метки. Типы данных языка OPascal. Статические и динамические массивы. Записи с вариантными полями. Совместимость и преобразование типов.
курс лекций [385,4 K], добавлен 18.02.2012Составление математической модели решения транспортной задачи. Описание входной и выходной информации. Программно-технические средства, используемые при разработке программы. Общее описание программы, ее назначение, информационная совместимость.
курсовая работа [49,1 K], добавлен 24.05.2013Проблема создания программы, нелегальное копирование которой приводит к потере программы способности нормально работать. Проверка места расположения файла на диске. Использование скрытых частей программы и особенностей физических носителей информации.
курсовая работа [58,2 K], добавлен 09.03.2009Методика и основные этапы создания программы, взаимодействующей с пользователем посредствам графического интерфейса и выполняющей помехоустойчивое кодирование информации, ее цели. Алгоритм работы программы, отладка и проверка ее работоспособности.
курсовая работа [43,1 K], добавлен 12.05.2013