Главная » Delphi » Класс TOleContainer

0

Теперь, рассмотрев основы технологий ActiveX и OLE, ознакомимся с классом Delphi  TOleContainer. Класс  TOleContainer определен в модуле OleCntrs и ин капсулирует подробности работы с контейнерами  документов OLE  и ActiveX в про стом и удобном компоненте библиотеки VCL.

НА ЗАМЕТКУ

Тем, кто уже знаком с использованием компонента TOleContainer в Delphi 1, не сле- дует пропускать этот раздел, поскольку в Delphi 2 этот компонент был полностью пе- ределан и все знания о разработке 16-разрядных приложений в Delphi будут практиче- ски неприменимы при разработке 32-разрядных приложений. Но не стоит расстраи- ваться: 32-разрядная версия этого компонента проще в применении, а код, который необходимо написать для поддержки объекта в новой версии, гораздо короче того, ко- торый приходилось создавать ранее.

Пример простого приложения

Теперь приступим к созданию приложения обладающего контейнером OLE. Соз дайте новый проект, щелкните на вкладке System в палитре компонентов и поместите в форму  компонент TOleContainer. Щелкните правой кнопкой мыши  на созданном объекте в окне  конструктора  форм  и  в появившемся контекстном меню  выберите пункт Insert Object. Раскроется диалоговое окно  Insert Object (Вставка  объекта), пока занное на рис. 15.18.

Внедрение нового объекта OLE

По  умолчанию в  диалоговом окне  Insert Object содержатся имена   приложений OLE серверов, зарегистрированных в Windows.  Для внедрения нового объекта OLE необходимо из списка  Object Type (Тип  объекта) выбрать приложение сервер. Это за пустит OLE сервер, что позволит создать  новый объект OLE, который будет вставлен в  объект  TOleContainer.  При   закрытии  приложения сервера  объект  TOleCon- tainer будет обновлен, и в нем появится изображение внедренного объекта. Напри мер, можно создать новый  документ MS Word 2000, как показано на рис. 15.19.

Рис. 15.19. Внедренный документ MS Word 2000

НА ЗАМЕТКУ

Объект OLE не может быть активизирован во время разработки. Объекта

TOleContainer работает только во время выполнения.

Чтобы открыть диалоговое окно  Insert Object во  время  выполнения, можно  вы звать   метод  InsertObjectDialog() класса  TOleContainer,  который  определен следующим образом:

function InsertObjectDialog: Boolean;

Эта функция возвращает значение True, если новый тип объекта OLE был успеш

но выбран из списка диалогового окна Insert Object.

Внедрение или связывание существующего файла  OLE

Для  внедрения существующего  файла  OLE  в объект TOleContainer установите переключатель в диалоговом окне Insert Object в положение Create From File (Создатьиз файла), а затем выберите существующий файл, как показано на рис. 15.20. Выбран

ный файл будет вести себя как новый  объект OLE.

Рис. 15.20. Вставка объекта из файла

Для внедрения файла  во время  выполнения необходимо вызвать метод CreateOb- jectFromFile() класса TOleContainer, который определен следующим образом:

procedure CreateObjectFromFile(const FileName: string; Iconic: Boolean);

Для  связывания (но  не внедрения) объекта OLE  просто установите флажок Link (Связь) в диалоговом окне  Insert Object (см.  рис. 15.20).  Как  уже было  сказано, это действие приводит к созданию связи  между приложением и файлом OLE,  благодаря которой можно  будет просматривать и редактировать один  и тот  же связанный объ ект сразу из нескольких приложений.

Для связывания файла  с приложением во время  выполнения вызовите метод Cre- ateLinkToFile() класса TOleContainer, который определен следующим образом:

procedure CreateLinkToFile(const FileName: string; Iconic: Boolean);

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии