главная карта сайта связь с нами

OleContainer

Компонент delphi OleContainer это компонент, обеспечивающий внедрение и связывание. Сразу вас предупреждаю, что применение этого компонента далеко не лучший способ использования OLE. В частности, нередко возникают определенные проблемы с этим компонентов в современных версиях Delphi. Лучше работать с серверами автоматизации OLE, о которых будет сказа в следующих статьях. Но для понимания сути использования этого компонента рассмотрю пример его применения на создания простого приложения.

Разместите на форме контейнер OleContainer, компонент главного меню MainMenu, и диалог OpenDialog. Контейнер должен занимать всю площадь формы, поэтому свойство Align делаем равным alClient. Пример этого приложения приведен на рисунке 1.

OleContainer

рис 1

В MainMenu введите меню файл и в нем разделы открыть, активировать и деактивировать.
Теперь необходимо прописать обработчики событий для нашего меню.

Открыть

Активировать

Деактивировать

Меню открыть вызывает метод InsertObjectDialog осуществляющий обращение к стандартному окну Windows Insert Object (вставка объекта), в котором пользователь может указать тип вставляемого объекта, инициализирует объект OLE и загружает его в контейнер OleContainerl. Меню активировать, вызывает Метод DoVerb обеспечивающий немедленное открытие программы, связанной со вставленным документом(запускает в нашем приложение OLE-сервер необходимый для редактирования файла). Типичными OLE-серверами являются такие системные утилиты, как Notepad, Paint и текстовый процессор Word, табличный процессор Excel и др. Меню деактивировать деактивирует OLE-сервер.
После запуска нашего приложения нажимаем файл и открыть, выбираем необходимый файл в моем случае я выбрал файл Word. Наше приложение открывает Word файл но его нельзя редактировать(рис. 2).

OleContainer

рис 2

После нажатия активировать в меню файл в нашем приложении открывается MS Word после чего доступны все его функции(рис.3)

 

OleContainer

рис 3

 

Оставить комментарий

*

code

Подписаться

Введите адрес электронной почты: