
- •Государственное образовательное учреждение высшего профессионального образования
- •Часть 1
- •Введение. Технологии обмена данными
- •Тема 1. Динамический обмен данными (dde)
- •1.1 Принципы динамического обмена данными
- •Структура транзакций dde
- •1.2. Транзакции dde
- •1.3. Примеры и задачи: обмен данными между приложениями по протоколу dde
- •Использование функции dde
- •Передача данных из Excel в Access с помощью модуля Access
- •Взаимодействие Access и Word
- •Взаимодействие Access и Excel
- •Построение диаграммы с помощью инструкции ddeExecute
- •Тема 2. Буфер обмена данными
- •2.1 Буфер обмена данными в vb
- •2.2. Методы объекта Clipboar.
- •2.3. Примеры и задачи: программирование буфера обмена данными
- •Тема 3. Ole-технологии
- •3.1. Представление ole-данных
- •3.2. Элемент управления ole-контейнер
- •3.3. Объекты ole как элементы управления
3.2. Элемент управления ole-контейнер
Создание OLE-объектов
Наиболее простой способ вставить OLE-объект в VB-проект – разместить на форме элемент управления OLE-контейнер. После добавления OLE –контейнера отображается диалоговое окно вставки OLE-объекта, в котором можно создать новый объект или создать его из файла, указав, будет это внедренный или связанный объект (рис. 10)
Рис.10
В зависимости от выбора пользователя OLE-контейнер будет содержать данные представления и/или естественные данные и предоставлять некоторые возможности для их редактирования. На рис.11 показан пример выбора нового точечного рисунка для размещения в элементе управления OLE1 и создание из файла точечного рисунка – в элементе OLE2.
Рис.11
Н
Рис.12
Созданный из файла объект можно отобразить на форме в виде значка, а также выставить флажок Связь для того, чтобы изменения в исходном файле отображались в OLE-контейнере (рис.13).
Рис.13
На этапе выполнения двойной щелчок на новом объекте загружает часть интерфейса исходного приложения (меню, например) и открывает данные для редактирования (рис.14)
Рис.14
Что касается объекта, созданного из файла, то на этапе выполнения двойной щелчок на объекте полностью разворачивает исходное приложение, в которое загружается данный файл.
Самостоятельные упражнения
Разместить на форме стандартного проекта элементы управления OLE-контейнер для создания объекта Диаграмма MSExcel
На этапе выполнения изменить исходные данные для диаграммы, пользуясь командами из меню Диаграмма, сохранить и закрыть проект.
Открыть разработанный проект и убедиться, что изменения не сохранились.
Программирование OLE- контейнера
Большинство операций по проектированию OLE-контейнера можно выполнить в диалоговом режиме на этапе разработки, как это было показано выше. Однако часто бывает полезным создавать программные коды для более гибкого управления возможностями OLE-контейнера.
Создание внедренного объекта осуществляется методом CreateEmbed. Синтаксис метода:
CreateEmbed <документ-источник>,<класс>
При вызове этого метода достаточно указать имя класса внедряемого объекта. Например,
OLE1.CreteEmbed ””,”Word.Document”
Для связанного объекта используется метод CreteLink, в качестве параметра которого надо указать источник данных, то есть имя файла и раздел данных. Синтаксис метода:
OLE1.CreteLink ”<полное имя файла>”,”<раздел данных>”
Например:
OLE1.CreteLink ”С:\table1.xls”,”C1R1
Упражнение
Создать в Excel книгу Book.xls с непустой ячейкой А1 и сохранить в корне диска С:.
Разместить на форме кнопку <ПУСК>; OLE1 и OLE2, отменив вставку объекта.
Написать код на кнопку:
Private Sub ПУСК_Click()
OLE1.CreateEmbed "", "Word.Document"
OLE2.CreateLink "C:\Book.xls", "R1C1"
End Sub
На рис.15 приведен результат выполнения проекта.
Рис.15
Как становится ясно из самостоятельного упражнения предыдущего пункта, для того чтобы при следующем запуске приложения в контейнере находился тот же OLE-объект, его необходимо сохранять. Сохранение данных в двоичном формате применяется к внедренным объектам, так как связанные объекты сохраняются приложением-источником. Для этого используется метод SaveToFile. Приведем пример кода для созранения данных:
Fn=FreeFile
Open “C:\DATA.OLE” For Binary As Fn
OLE1.SaveToFile Fn
Close #Fn
Загрузка объектов производится аналогичным образом при помощи метода ReadFromFile
Самостоятельное упражнение
На форме стандартного проекта разместить OLE-контейнер с внедренным документом Word и добавить код, сохраняющий данные. На этапе выполнения ввести текст в документ, сохранить и закрыть проект.
Открыть проект и убедиться, что данные созранились.