Порядок выполнения работы. Объекты OLE. Компонент OleContainer

Объекты OLE. Компонент OleContainer. Связывание и встраивание объектов.

Цель занятия:

Освоение принципов использования технологии OLE в среде Delphi.

Изучение свойств объекта OleContainer.

Получение практических навыков работы объектно-ориентированного программирования.

Вопросы для коллоквиума.

1. Что представляет собой технология OLE.

2. Укажите назначение компонента компонент OleContainer.

3. Перечислите свойства компонента OleContainer.

4. Укажите назначение OLE Контейнера.

Порядок выполнения работы.

  1. Создайте новый проект.
  2. Бросьте на форму компонент OleContainer с закладки System палитры компонентов. Теперь дважды щёлкните внутри окна компонента (или щёлкните правой кнопкой и в появившемся меню выберите пункт Insert Object). Перед вами откроется следующее окно:

  1. В этом окне, в списке «Тип объекта» найдите строку «Рисунок PaintBrush». Выделите эту строку. Если поставить галочку «В виде значка», то на форме вы потом увидите только значок объекта, а по двойному щелчку будет запускаться выбранное приложение (PaintBrush). Если галочки нет, то приложение встраивается прямо в окно.
  2. Запустите программу и дважды щёлкнуть внутри компонента OLEContainer. Компонент будет взят в рамочку и вы сможете рисовать в нём как в самом PaintBrush.
  3. Таким способом мы встроили стороннее приложение в свою программу.
  4. Для добавления меню в ваше приложение бросьте на форму компонент MainMenu. Туда не надо добавлять никаких пунктов, достаточно просто его бросить. Если у формы есть главное меню, то OLE компонент будет автоматически встраиваться в него.
  5. Запустите программу и убедитесь, что меню появляется.
  6. Теперь измените свойство Align у компонента OleContainer1 на alClient, чтобы растянуть его по всей форме. Запустите программу и посмотрите на результат. Теперь ваше приложение превратилось в полноценный PaintBrush. Единственное, что отличает его – заголовок окна и иконка Delphi.

  1. Создайте в нашем главном меню два пункта Файл и Правка. У обоих пунктов добавьте подпункты Выход и Копировать.
  2. Теперь запустите программу и посмотрите на результат. Когда вы пытаешься активизировать OLE объект, то меню Файл остаётся ваше, а аналогичное из программы PaintBrush исчезает. К тому же у вас должно получиться два пункта Правка. Пункты меню, у которых в свойстве GroupIndex стоит чётное значение (0, 2, 4 …) – остаются неизменными. Пункты меню, у которых GroupIndex нечётное – заменяются аналогичными из OLE объекта. Попробуйте поставить у пункта Правка в свойстве GroupIndex значение 1 и запустите программу. Теперь при активизации OLE объекта пункт меню «Правка» будет заменён аналогичным из объекта.
  3. Изменим наш пример. Добавьте на форму одну панель TToolBar (вкладка Win32) и бросьте на неё набор кнопок:

- Вставить объект.

- Свойства объекта.

- Вставить из файла

- Открыть объект.

- Сохранить объект.

- Закрыть объект.

  1. Сразу же изменим одно его свойство – дважды щёлкните по свойству EdgeBorders и измените свойство ebTop на false. Это заставит исчезнуть оборочку сверху панели.
  2. Измените свойство AutoSize на true, чтобы панель принимала размеры соответствующие кнопкам.
  3. Теперь создадим кнопки на панели. Для этого щёлкните по ней правой кнопкой мыши и выберите из появившегося меню пункт New Button. Пункт New Separator этого же меню создаёт разделитель между кнопками. Если вам нужно будет удалить кнопку или разделитель, то просто выделите его и нажмите кнопку Del (на клавиатуре).
  4.  
     

    Таким образом создайте все кнопки вместе с разделителями. У вас должно получиться нечто похожее на рисунок:
  5. Теперь необходимо сделать так, чтобы кнопки что-то отображали. Но для начала выделите саму панель и изменить свойство Flat на true, чтобы кнопки на панели выглядели более изящно (плоско).
  6. Теперь бросьте на форму компонент TImageList (вкладка Win32)и добавьте в него картинки.
  7. Выделите панель и в свойстве Images укажите созданный набор картинок. На кнопках сразу же отобразятся картинки в той последовательности, в которой вы их добавили. Если вы хотите изменить картинку на какой-нибудь кнопке, то надо выделить её и изменить свойство ImageIndex.

  1. Теперь для каждой кнопки в свойстве Caption напишите осмысленный текст (по умолчанию там стоит текст ToolButton плюс порядковый номер кнопки). Желательно, чтобы текст соответствовал изображению на картинке.
  2. Если хотите, чтобы панель отображала на кнопках не только картинки, но и указанный в свойствах Caption текст установите true в свойстве ShowCaptions у панели инструментов. (Если ещё установить свойство List у панели инструментов, то текст будет отображаться справа от картинки)
  3. У вас должна получится форма приблизительно такого вида:

  1. По нажатию кнопки «Вставить объект» пишем следующий код:

procedure TForm1.ToolButton1Click(Sender: TObject);

begin

OleContainer1.InsertObjectDialog;

end;

  1. Теперь, после нажатия этой кнопки, программа будет отображать уже знакомое вам окно, с помощью которого можно будет сменить OLE объект на другой.
  2. По нажатию второй кнопки (свойства объекта) пишем следующий код:

procedure TForm1.ToolButton2Click(Sender: TObject);

begin

OleContainer1.ObjectPropertiesDialog;

end;

Этим кодом мы будем отображать окно свойств объекта.

  1. По нажатию кнопки «Вставить из файла» пишем следующий код:

procedure TForm1.ToolButton4Click(Sender: TObject);

begin

if OpenDialog1.Execute then

OleContainer1.CreateObjectFromFile(OpenDialog1.FileName, false);

end;

  1. Так как в для открытия файла требуется компонент OpenDialog, бросьте его на форму.Как только пользователь выбирает файл, создается объект на основе выбранного файла. Попробуйте запустить приложение и открыть bmp, doc или xls файл. Как только вы нажмёте кнопку «Открыть», так сразу перед вами появиться соответствующий выбранному файлу OLE объект. Если вы выберете doc файл, то запуститься Word.
  2. По нажатию кнопки «Открыть объект» пишем следующий код:

procedure TForm1.ToolButton4Click(Sender: TObject);

begin

OleContainer1.LoadFromFile('ole.dat');

end;

Здесь мы открываем объект из указанного файла. В качестве имени файла используем ‘ ole.dat ’.

  1. По нажатию кнопки сохранить мы пишем следующее:

procedure TForm1.ToolButton4Click(Sender: TObject);

begin

OleContainer1.SaveToFile('ole.dat');

end;

Здесь мы сохраняем объект в тот же файл ‘ ole.dat ’. Файл созданный OLE объектом не совместим с форматом самой программы объекта. Это значит, что ole.dat – это не bmp картинка, хотя и bmp – это родной формат для программы PaintBrush. Так что вы не сможете открыть файл ole.dat с помощью PaintBrush.

  1. По нажатию кнопки закрыть пишем следующее:

procedure TForm1.ToolButton11Click(Sender: TObject);

begin

OleContainer1.Close;

end;

Здесь мы закрываем запущенный OLE объект. Если пользователь дважды щёлкнул по контейнеру, то OLE объект запускается и закрыть его можно с помощью этой кнопки.

  1. Если вы все сделали правильно, у вас получится следующее приложение:

  1. Представить результаты выполнения преподавателю.
  2. Закончить работу с Delphi.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: