Лабораторная работа №6. Внедрение и связь объектов Цель работы: Основные понятия:

advertisement
Лабораторная работа №6. Внедрение и связь объектов
Цель работы: Познакомиться с возможностями Delphi при работе с технологией OLE
Основные понятия:
OLE (Object Link and Embedding) – внедрение и связь объектов. Данная
технология является стандартом Windows и обеспечивает связывание и
встраивание объектов на основе технологии COM.
COM (Component Object Model) – модель многокомпонентных объектов.
Объекты OLE могут запускаться как в отдельном окне, так и внутри окна
приложения. Таким образом, можно получать доступ к чужим приложениям
и использовать их в своих целях. Когда OLE-объект запускается внутри окна,
то часть меню и панелей заменяются на используемые в программе, которая
загружается.
При работе с OLE выделяются два способа связи.
1. Связывание объекта OLE с контейнером. В этом случае результирующий файл сохраняется отдельно и должен быть создан до того, как контейнер
обратится к нему. Контейнер только ссылается на файл, но не хранит в себе
никаких данных. Главное преимущество такого способа – к одной документу
может ссылаться множество контейнеров, и при изменении документа все
контейнеры получают эти изменения.
2. Встраивание объектов. В этом случае созданный документ хранится в
контейнере, и другие приложения не могут получить к нему доступ. В этом
случае данные хранятся как часть приложения.
Для встраивания объектов в приложение в Delphi используется компонент OleContainer с вкладки System Палитры компонентов.
Рассмотрим основные свойства компонента OleContainer:
AllowInPlace – если это свойство равно True, то OLE-объект будет создаваться в компоненте, иначе будет запускаться как отдельное приложение.
AutoActivate – определяет способ активизации OLE-объекта. Здесь возможны следующие значения:
∙ aaDoubleclick – активизация объекта будет происходить по двойному
щелчку кнопки мыши;
∙ aaGetFocus – активизация при получении фокуса;
∙ aaManual – активизация вызовом соответствующей функции;
∙ CopyOnSave – если это свойство равно true, то при попытке сохранения создается временный файл, который сжимается для экономии места на диске.
Iconic – если это свойство равно True, то в окне контейнера будет отображаться иконка объекта, иначе – сам объект.
Linked – если объект связанный, то здесь True.
OleClassName – здесь хранится имя OLE-объекта.
OleObject – здесь хранится ссылка на сам OLE-объект.
OleObjectInterface – здесь хранится ссылка на интерфейс OLE-объекта.
Высокоуровневые методы информатики и программирования
Modified – если объект изменён, то это свойство принимает значение True.
NewInserted – если объект заново создан командой меню Вставить Объект, то это свойство равно True.
OleStreamFormat – если это свойство равно True, то при сохранении будет использоваться старый формат OLE 1.0.
SizeMode – управляет размером объекта. Здесь возможны следующие
значения:
∙ smAutoSize – размер выбирается автоматически.
∙ smCenter – по центру.
∙ smClip – показывается объект реальных размеров (отображается та
часть, которая поместилась в окно).
∙ smScale – объект масштабируется.
∙ smStretch – объект растягивается.
Рассмотрим основные методы компонента OleContainer:
ChangeIconDialog – показать окно смены иконки.
Close – закрыть OLE-объект.
Cору – копировать объект в буфер обмена.
CreateLinkToFile – создать ссылку на файл OLE-объекта.
CreateObject – создать в контейнере OLE-объект. Тут два параметра –
имя объекта и булево значение, указывающее на необходимость создания
объекта в виде иконки.
CreateObjectFromFile – создать объект из указанного файла. Тут два параметра – имя файла и булево значение, указывающее на необходимость создания объекта в виде иконки.
DoVerb – передать объекту OLE запрос на выполнение действий.
InsertObjectDialog – показать окно вставки нового объекта.
LoadFromFile – загрузить объект из файла. В качестве параметра нужно
указать имя файла.
ObjectPropertiesDialog – показать окно свойств объекта.
Paste – вставить из буфера обмена.
PasteSpecialDialog – показать окно вставки из буфера обмена.
Run – запустить объект.
SaveAsDocument – сохранить объект в виде OLE-документа. В качестве
параметра нужно указать имя файла.
Порядок выполнения работы
1. Запустите Delphi. Создайте новый проект.
2. Назовите форму MainForm с заголовком Главная. Для формы задайте
размер 600х800.
3. Сохраните проект в папку D:\Users\...\Lab6\.... Окно сохраните под именем
MainUnit, а проект под именем OLETech.
4. На форме создайте:
 панель высотой 100, сделайте, чтобы она выравнивалась по нижнему
краю окна. Измените цвет панели;
2
Высокоуровневые методы информатики и программирования
компонент OleContainer, сделайте, чтобы он занимал всю оставшуюся
форму. Дважды щелкните левой кнопкой мыши внутри компонента или
щелкните правой кнопкой и в появившемся меню выберите пункт Вставить Объект. В открывшемся окне Вставка объекта в списке Тип объекта выберете Рисунок PaintBrush.
Если установить флажок В виде значка, то на форме будет только значок объекта, а по двойному щелчку кнопки мыши будет запускаться выбранное приложение (PaintBrush). Если флажок не устанавливать, то
приложение встраивается прямо в окно. Нажмите кнопку OK;
 главное меню. В него не надо добавлять никаких пунктов, OLEкомпонент будет автоматически встраиваться в него своё главное меню;
 панель ToolBar (вкладка Win32). Используя контекстное меню, создайте
пять кнопок ToolButton (Вставить объект, Свойства объекта, Вставить из
файла, Открыть объект, Сохранить объект), разделитель, две кнопки
(Копировать в буфер, Вставить), разделитель и еще одну кнопку (Закрыть). Сделайте, чтобы на кнопках отображались на рисунки;
 диалог открытия файла;
 диалог сохранения файла.
5. В процедуру обработки для первой кнопки введите код:

OleContainer1.InsertObjectDialog;
По нажатию этой кнопки, программа будет отображать окно Вставка объекта, с помощью которого можно будет сменить OLE-объект.
6. В процедуру обработки для второй кнопки введите код:
OleContainer1.ObjectPropertiesDialog;
Этот код будет отображать окно свойств объекта.
7. В процедуру обработки для третьей кнопки введите код:
If OpenDialog1.Execute Then
OleContainer1.CreateObjectFromFile (OpenDialog1.FileName, False);
8. В процедуру обработки для четвёртой кнопки введите код:
Try
If OpenDialog1.Execute
Then OleContainer1.LoadFromFile(OpenDialog1.FileName);
Except
Application.MessageBox('Не правильный формат файла', 'Ошибка!!!');
End;
9. Запрограммируйте остальные кнопки: Сохранить, Копировать, Вставить и
Закрыть.
10. На нижней панели напишите своё Ф.И.О.
3
Download