Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование лекции.doc
Скачиваний:
49
Добавлен:
12.11.2019
Размер:
5.53 Mб
Скачать

24.2. Основы ole-технологии

М ощное средство ОС Windows – так называемая OLE технология. OLE означает "связывание и внедрение объектов" (object linking and embedding). OLE технология позволяет в файл, записанный в формате какой-либо программы (скажем, документ Word, рисунок Corel и т.д.) встроить информацию, созданную другой программой. Такая вставленная информация называется OLE объектом. Со вставкой OLE объекта знаком каждый, кто создавал более-менее сложные документы в Word. Нужна формула? Вставляется объект программы MS Equation. График? Вставляем объект MS Graph. Схема? Вставим объект Visio (Рис. 24 .87).

Рис. 24.87 Внедрение OLE объектов в документ Word.

Внедренный объект "знает", какой программой он был создан. Поэтому его можно редактировать на месте (in-place editing): внутри окна основной программы открывается окошко программы, в которой был создан OLE объект. Разумеется, эта программа должна быть установлена на компьютере, в противном случае объект можно будет только просматривать, но не редактировать. Поэтому в реестре Windows хранится список программ, поддерживающих OLE технологию (Рис. 24 .89).

Рис. 24.88 Редактирование 3D модели SolidWorks в окне Word.

Рис. 24.89 Список программ, поддерживающих OLE технологию.

Объекты могут внедряться двумя способами, что следует из самого названия технологии. Связывание объектов (linking) означает, что в основной документ записывается ссылка на внешний файл, в котором хранится встраиваемая информация. Таким образом, два файла связываются между собой. Преимущество связывания – размер основного файла практически не изменяется. Недостаток – трудности при переносе такого файла с места на место: надо не только копировать все связанные с ним файлы, но и обеспечить их нахождение в тех же директориях на диске.

Встраивание объектов (embedding) подразумевает реальную вставку информации, сохраненной другой программой, внутрь основного документа, что, разумеется, приводит к росту его размера, но снимает все проблемы с размещением файлов.

Delphi имеет единственное средство для работы с OLE объектами: визуальный компонент типа TOLEContainer на закладке System. Внутрь этого компонента можно поместить любой OLE объект: формулу, рисунок, чертеж… При этом можно разрешить и встроенное редактирование OLE объекта (правда, с определенными ограничениями).

Давайте поместим в компонент OLEContainer1 формулу. Помещаем компонент на форму, щелкаем по нему правой кнопкой мыши и в контекстном меню выбираем пункт Insert object. Диалоговое окно предлагает два варианта: создание из файла (это связывание) и создание нового объекта (это внедрение). Поскольку редактор формул MS Equation не сохраняет формулы в файле собственного формата, связывание в данном случае просто неприменимо. Из списка программ выбираем MS Equation 3.0 и нажимаем OK. Открывается окно редактора формул, в котором можно набрать уравнение, а в его меню "Файл" добавляется пункт "Выход и возврат в OLEContainer1". Введем любую формулу и выйдем из редактора – формула отобразится в компоненте OLEContainer1. Ее внешний вид определяется свойством компонента SizeMode ().

Рис. 24.90 Выравнивание изображения в компоненте OLEContainer.

Смысл значений свойства SizeMode таков:

Табл. 24.3

Значение

Смысл

smClip

Объект отображается в своем настоящем размере. Все непомещающиеся части удаляются

smCenter

Объект отображается в своем настоящем размере в центре компонента

smScale

Объект масштабируется с сохранением пропорций так, чтобы полностью поместиться в контейнер

smStretch

Объект масштабируется без сохранения пропорций так, чтобы полностью поместиться в контейнер

smAutoSize

Объект отображается в своем настоящем размере, а размер компонента подгоняется под размер объекта

Следует иметь в виду, что для многостраничных документов (документы Word, например) компонент OLEContainer всегда отображает только первую страницу.