OleContainer

  

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

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

Пример компонента OleContainer

Рис.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).

Отрытый файл Word в компонент OleContainer

Рис.2

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

Открытый  MS Word