44. Интегрированная среда разработки приложений Delphi, ее возможности. Взаимодействие между приложениями Windows (технология OLE). Пример
Технология ObjectLinkingandEmbedding(Связывание и внедрение объектов) обладает значительно большими возможностями, нежели механизм DDE. Типичный пример использования этой технологии — добавление рисунка в документ текстового процессора Word(Вставка > Рисунок > Из файла). Это действие можно выполнить двумя способами.
- В ходе выбора рисунка в диалоговом окне устанавливается флажок Связать с файлом. В этом случае в документ физически добавляется только ссылка на рисунок (место его хранения и используемый графический формат). При внесении изменений в исходный файл с рисунком эти изменения отображаются в документе, а если этот файл удалить, то программа Word не сможет ничего отобразить. Такой способ объединения двух объектов называется связыванием.
- Если флажок Связать с файлом сброшен, то рисунок копируется из исходного файла и вставляется в документ. Теперь, если оригинальный файл изменен или удален, копия рисунка останется в документе в неизменном виде. Такой подход называется внедрением.
В случае связывания объем документа Word увеличивается незначительно, но требуется контролировать наличие файла с рисунком и следить за его изменениями. В случае внедрения существенно увеличивается объем документа, так как изображение хранится внутри него.
Объект, который встраивается в документ или связывается с ним, называется контейнером OLE(OLE Container). В нашем случае это рисунок. В системе Delphi в разделе System (Системные) имеется компонент TOleContainer, позволяющий встраивать объекты в программу или связывать их с ней (рис.1).
Рисунок 1 – Компонент TOleContainer
Технология OLE обладает и множеством других возможностей. В частности, это автоматизация OLE(OLE Automation), позволяющая программно управлять другими приложениями, вызывая их методы, доступные через интерфейс OLE. При этом, конечно, требуется, чтобы приложение поддерживало автоматизацию OLE.
Технология OLE расширяет технологию DDE.Если ранее можно было только обмениваться данными и понятия «объект» не существовало, то в рамках технологии OLE программист работает с программами и данными как с полноценными объектами, обладающими не только свойствами, но и методами, к которым можно обращаться. Практически все офисные приложения Windows поддерживают автоматизацию OLE. Например, к таковым относится браузер InternetExplorer, работой которого несложно управлять программно.
Основные недостатки при использовании технологии OLE— необходимость знать (как и в случае DDE) описание доступных свойств и методов обрабатываемых объектов, которые в браузере и редакторе отличаются, и отсутствие общего программного интерфейса.
Эта проблема была полностью снята в технологии COM (ComponentObjectModel, объектная модель компонента), основанной на технологии OLE. Технология СОМ подробно рассматривается в последующих главах.
Однако вернемся к объектам OLE и посмотрим, как можно использовать компонент TOleContainer. После размещения компонента на форме в его контекстном меню доступны, в частности, два пункта: Insert Object (Вставить объект) и Paste Special (Специальная вставка). С помощью первого пункта определяется объект OLE, который размещается на форме (рис. 2).
Рисунок 2 - Стандартное диалоговое окно для вставки объектов OLE
В списке указываются все типы объектов OLE, которые зарегистрированы в конкретной версии Windows. Например, если выбрать пункт Диаграмма Microsoft Excel (при условии, что в системе установлена электронная таблица Excel), то в окне компонента отображается некая начальная диаграмма (рис. 3).
Рисунок 3 - Диаграмма Excel как объект OLE на форме
Если дважды щелкнуть на ней, то в рамках границ компонента TOleContainer запускается программа Excel. С ее помощью можно выполнить редактирование этой диаграммы (рис. 4).
Можно также вставить готовый объект из файла. Тогда в диалоговом окне вставки объекта надо установить переключатель Создать из файла и указать нужный файл. Флажок Связь определяет режим добавления документа в программу (связывание или внедрение).
Рисунок 4 - Редактирование диаграммы в рамках формы средствами сервера OLE