Компонент delphi OleContainer это компонент, обеспечивающий внедрение и связывание. Сразу вас предупреждаю, что применение этого компонента далеко не лучший способ использования OLE. В частности, нередко возникают определенные проблемы с этим компонентов в современных версиях Delphi. Лучше работать с серверами автоматизации OLE, о которых будет сказа в следующих статьях. Но для понимания сути использования этого компонента рассмотрю пример его применения на создания простого приложения.
Разместите на форме контейнер OleContainer, компонент главного меню MainMenu, и диалог OpenDialog. Контейнер должен занимать всю площадь формы, поэтому свойство Align делаем равным alClient. Пример этого приложения приведен на рисунке 1.
Рис.1
В MainMenu введите меню файл и в нем разделы открыть, активировать и деактивировать.
Теперь необходимо прописать обработчики событий для нашего меню.
Открыть
1 2 3 4 5 | procedure TForm1.N2Click(Sender: TObject); begin if OpenDialog1.Execute then OleContainer1.CreateObjectFromFile(OpenDialog1.FileName, false); end; |
Активировать
1 2 3 4 5 | procedure TForm1.N4Click(Sender: TObject); begin if OleContainer1.State <> osEmpty then OleContainer1.DoVerb(ovShow); end; |
Деактивировать
1 2 3 4 5 | procedure TForm1.N5Click(Sender: TObject); begin if OleContainer1.State <> osEmpty then OleContainer1.Close; end; |
Меню открыть вызывает метод InsertObjectDialog осуществляющий обращение к стандартному окну Windows Insert Object (вставка объекта), в котором пользователь может указать тип вставляемого объекта, инициализирует объект OLE и загружает его в контейнер OleContainerl. Меню активировать, вызывает Метод DoVerb обеспечивающий немедленное открытие программы, связанной со вставленным документом(запускает в нашем приложение OLE-сервер необходимый для редактирования файла). Типичными OLE-серверами являются такие системные утилиты, как Notepad, Paint и текстовый процессор Word, табличный процессор Excel и др. Меню деактивировать деактивирует OLE-сервер.
После запуска нашего приложения нажимаем файл и открыть, выбираем необходимый файл в моем случае я выбрал файл Word. Наше приложение открывает Word файл но его нельзя редактировать (рис. 2).
Рис.2
После нажатия активировать в меню файл в нашем приложении открывается MS Word после чего доступны все его функции (рис.3)