Ole содержание Обзор Основы ole объект tolecontainer Пример ole приложения Сохранение ole объекта в базе данных Обзор icon

Ole содержание Обзор Основы ole объект tolecontainer Пример ole приложения Сохранение ole объекта в базе данных Обзор



НазваниеOle содержание Обзор Основы ole объект tolecontainer Пример ole приложения Сохранение ole объекта в базе данных Обзор
Дата конвертации17.07.2012
Размер57.45 Kb.
ТипОбзор
1. /Delphi3/ALEXS.RTF
2. /Delphi3/LES00.RTF
3. /Delphi3/LES11.RTF
4. /Delphi3/LES110.RTF
5. /Delphi3/LES12.RTF
6. /Delphi3/LES13.RTF
7. /Delphi3/LES14.RTF
8. /Delphi3/LES15.RTF
9. /Delphi3/LES16.RTF
10. /Delphi3/LES17.RTF
11. /Delphi3/LES18.RTF
12. /Delphi3/LES19.RTF
13. /Delphi3/LES21.RTF
14. /Delphi3/LES22.RTF
15. /Delphi3/LES23.RTF
16. /Delphi3/LES31.RTF
17. /Delphi3/LES310.RTF
18. /Delphi3/LES311.RTF
19. /Delphi3/LES32.RTF
20. /Delphi3/LES33.RTF
21. /Delphi3/LES34.RTF
22. /Delphi3/LES35.RTF
23. /Delphi3/LES36.RTF
24. /Delphi3/LES37.RTF
25. /Delphi3/LES38.RTF
26. /Delphi3/LES39.RTF
27. /Delphi3/LES41.RTF
28. /Delphi3/LES42.RTF
29. /Delphi3/LES43.RTF
30. /Delphi3/LES44.RTF
31. /Delphi3/LES45.RTF
32. /Delphi3/MENU.DOC
HighWay Soft Group
Borland Delphi
Среда программирования Delphi Содержание
Средства создания мультимедийных приложений Содержание
Проект Delphi Пункт меню "File"
Обзор Палитры Компонент Содержание
Рисование и закраска Содержание
Печать текстовая и графическая Содержание
Свойства в Delphi Содержание Îáçîð -error: Reference source not found
Обзор
Обработка исключительных ситуаций в Delphi Содержание
События в Delphi Содержание
Dynamic Data Exchange получило свое имя потому, что позволяет двум приложениям обмениваться данными (текстовыми, через глобальную память) динамически во время выполнения. Связь между двумя программа
Ole содержание Обзор Основы ole объект tolecontainer Пример ole приложения Сохранение ole объекта в базе данных Обзор
Использование dll в Delphi Содержание
Обзор
Управление транзакциями Содержание
Local InterBase Содержание
Настройка bde содержание Обзор 2 Обзор
Создание таблиц с помощью Database Desktop Содержание
Создание таблиц с помощью sql-запросов Содержание
Содержание
Компонент ttable. Создание таблиц с помощью компонента ttable Содержание
Содержание
Содержание
Управление соединением с базой данных (класс tdataBase,объект Session) Содержание
Создание собственных компонент Содержание
Редакторы свойств Содержание
Содержание
Урок 30: Основы языка sql содержание урока 30
Обзор Local InterBase 0 les311. rtf Подменю «Сложный материал» Создание собственных компонент les41. rtf Создание редакторов свойств компонент les42. rtf Генератор отчет

32 óðîêà ïî Delphi


OLE


Содержание

Обзор

Основы OLE

Объект TOLEContainer

Пример OLE приложения

Сохранение OLE объекта в базе данных

Обзор


Из статьи Вы узнаете основные сведения об OLE, некоторые вещи относительно OLE 2 и OLE Automation. В статье рассказывается об использовании объекта TOLEContainer для построения OLE приложения в Delphi.

Основы OLE


Прежде, чем перейти к рассмотрению основ OLE, потребуется изучить терминологию.

Аббревиатура OLE обозначает Objects Linked and Embedded (Присоединенные И Встроенные Объекты - ПИВО ). Данные, разделяемые между приложениями называются OLE объектом. Приложение, которое может содержать OLE объекты, называют OLE контейнером (OLE Container). Приложение, данные из которого можно включить в OLE контейнер в виде OLE объекта, называют OLE сервером.

Например, MicroSoft Word может включать в документ графические объекты, аудио- и видеоклипы и множество других объектов (такой документ иногда называют составным документом - compound document ).

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

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

В природе существует несколько видов OLE, отличающихся по способу активации OLE сервера. OLE версии 1 запускает сервер в отдельном окне. OLE 2 реализует то, что называется in-place activation and editing. В данном случае сервер запускается “внутри” приложения-клиента, модифицирует вид системного меню, линейки инструментов и др. Развитие идеи OLE привело к появлению OLE automation - приложение-клиент может выполнить часть кода сервера. Тип OLE объекта, помещенного в программу-клиент, определяется тем, какую версию OLE поддерживает сервер.

Объект TOLEContainer


Объект TOLEContainer находится на странице System Палитры Компонент и нужен для создания приложений OLE-контейнеров. TOLEContainer скрывает все сложности, связанные с внутренней организацией OLE и предоставляет программисту достаточно простой интерфейс. Построим простейшее приложение с использованием OLE объекта. Создайте новый проект и поместите на форму TOLEContainer, в Инспекторе Объектов дважды щелкните мышкой на свойство ObjClass или ObjDoc - появится стандартный диалог Windows “Insert Object” (см. рис.1)





Рис.: Стандартный диалог Windows для определения OLE объекта.
В этом диалоге есть список всех зарегистрированных в системе OLE-серверов (регистрация происходит при инсталляции программы). Тип OLE-объекта определяется как раз тем сервером, который Вы укажете. Если Вы создаете новый объект (Create New), то при нажатии кнопки OK запустится программа OLE-сервер, в которой и формируется новый объект. После выхода из программы-сервера новый OLE объект включается (embedded object) в программу. OLE объект можно создать используя уже имеющийся файл в формате одного из OLE-серверов. Для этого нужно выбрать пункт Create from File (см. рис.2)





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

Итак, давайте при создании нашего проекта создадим новый объект, выбрав для этого, например, Microsoft Word Document (рис.1). Нажмите OK и после того, как запустится MS Word, наберите там любой текст (“Это OLE-объект Microsoft Word document”). Для завершения работы в меню есть специальный пункт “File|Close and Return to Form1” (Win’95+MS Word 7.0). Запустите проект, он будет выглядеть примерно так:




Рис.: Простое приложение с OLE-контейнером.
Щелкните дважды мышкой на OLE-контейнер - запустится MS Word с документом из OLE-объекта, который можно редактировать, при этом все изменения сохраняются в OLE-объекте.


!!! Если во время дизайна Вы выбираете объект для включения в OLE-контейнер, то он полностью записывается в файл формы (FORM1.DFM) и в дальнейшем прикомпилируется к EXE файлу. В случае очень больших объектов это может привести во время дизайна к длительным паузам и даже к возникновению ошибки “Out of resource”. Поэтому рекомендуется большие объекты делать присоединенными (linked).


TOLEContainer позволяет отображать в программе объект в его непосредственном виде (с различной степенью увеличения или уменьшения - свойство Zoom) или в виде пиктограммы, определяемой в диалоге на рис.1 (Display as Icon).

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

Пример OLE приложения


Среди демонстрационных примеров, входящих в Delphi есть два, относящихся к работе с OLE-объектами (в директориях X:\DELPHI\DEMOS\OLE2 и X:\DELPHI\DEMOS\DOC\OLE2). Более полным является второй, который, кроме всего прочего является примером построения MDI приложения. Данная программа демонстрирует все основные возможности TOLEContainer и позволяет:

- создавать новый OLE контейнер во время выполнения программы;

- инициализировать OLE объект либо в стандартном диалоге Windows “Insert Object”, либо с помощью Clipboard, либо с помощью техники “перенести и бросить” (drag-and-drop);

- сохранить OLE объект в файле и восстановить его оттуда;




Рис.: MDI OLE приложение.

На рис.4 показан пример MDI приложения, содержащий два дочерних окна с OLE объектами. Для создания нового OLE объекта нужно выбрать пункт меню File|New и далее Edit|Insert Object. Появится стандартный диалог Windows для инициализации OLE объекта (см. рис.1). Если приложение OLE-сервер имеет возможность сохранять информацию об OLE объекте в Clipboard, то проинициализировать объект можно с помощью пункта меню Edit|Paste Special.

Достаточно интересной является возможность применения техники drag-and-drop в применении к OLE объектам. Запустите MS Word (разместите его окно так, чтобы было видно и OLE приложение), наберите какой-нибудь текст, выделите его и с помощью мышки перетащите и бросьте на главное MDI окно приложения. Появится новое дочернее окно с OLE контейнером, содержащим этот текст. Программирование данной возможности достаточно сложно. Полное описание технологии построения данного OLE приложения есть в документации в коробке с Delphi (User’s guide), этому посвящена отдельная глава.

Сохранение OLE объекта в базе данных


Иногда необходимо хранить OLE объекты не в файлах, а в базе данных (BLOB поле в таблице). Конечно, в данном случае OLE объект должен быть присоединенным (embedded) в целях переносимости. К сожалению, в стандартной поставке Delphi нет специального объекта типа TDBOLEContainer для данных целей, но OLE объект можно сохранять и восстанавливать с помощью методов SaveToStream и LoadFromStream. Например:


procedure TOLEForm.SaveOLE(Sender: TObject);

var

BlSt : TBlobStream;

begin

With Table1 do

BlSt:=TBlobStream.Create(BlobField(FieldByName('OLE')),

bmReadWrite);

OLEContainer.SaveToStream(BlSt as TStream);

BlSt.Free;

end;




Epsylon Technologies

Óðîê 13 : OLE






Похожие:

Ole содержание Обзор Основы ole объект tolecontainer Пример ole приложения Сохранение ole объекта в базе данных Обзор iconДокументы
1. /ole-03.txt
Ole содержание Обзор Основы ole объект tolecontainer Пример ole приложения Сохранение ole объекта в базе данных Обзор iconДокументы
1. /ole-07.doc
Ole содержание Обзор Основы ole объект tolecontainer Пример ole приложения Сохранение ole объекта в базе данных Обзор iconДокументы
1. /ole-05.txt
Ole содержание Обзор Основы ole объект tolecontainer Пример ole приложения Сохранение ole объекта в базе данных Обзор iconДокументы
1. /ole-04.txt
Ole содержание Обзор Основы ole объект tolecontainer Пример ole приложения Сохранение ole объекта в базе данных Обзор iconДокументы
1. /ole-05.txt
Ole содержание Обзор Основы ole объект tolecontainer Пример ole приложения Сохранение ole объекта в базе данных Обзор iconДокументы
1. /ole-07.doc
Ole содержание Обзор Основы ole объект tolecontainer Пример ole приложения Сохранение ole объекта в базе данных Обзор iconДокументы
1. /ole-06.txt
Ole содержание Обзор Основы ole объект tolecontainer Пример ole приложения Сохранение ole объекта в базе данных Обзор iconДокументы
1. /ole-06.txt
Ole содержание Обзор Основы ole объект tolecontainer Пример ole приложения Сохранение ole объекта в базе данных Обзор iconДокументы
1. /ole-01.txt
Ole содержание Обзор Основы ole объект tolecontainer Пример ole приложения Сохранение ole объекта в базе данных Обзор iconДокументы
1. /ole-03.txt
Ole содержание Обзор Основы ole объект tolecontainer Пример ole приложения Сохранение ole объекта в базе данных Обзор iconДокументы
1. /ole-02.txt
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы