Как подключить библиотеку DLL ? |
Обмен данными
OLE
При реализации обмена данными приложений данные/наборы данных могут представлять собой связанные или внедрeнные объекты. Связывание (Link) используется, если нужно, чтобы при изменении данных в исходном файле данные в другом файле также изменялись. Внедрение используется, если нужно использовать конечный файл (на другом компьютере) и нежелательно изменение данных в нeм при изменении исходных данных
Связанный объект - это объект, созданный в одном файле и вставленный в другой файл с поддержкой связи между файлами; связанный объект не является частью файла, в который он вставлен. При обновлении исходного файла связанный объект автоматически обновляется.
Внедрeнный объект является частью файла, в который он вставлен. При двойном щелчке на связанном объекте он открывается в приложении, в котором он был создан; при двойном щелчке на внедрeнном объекте появляется возможность редактирования его средствами текущего приложения.
Элемент управления OLE
Элемент управления OLE (панель элементов управления) используется для связывания /внедрения объектов в приложениях Visual Basic. Контекстное меню OLE содержит команды:
- вырезать, копировать, вставить, удалить,
- перенести
- вставить объект (имеется список объектов для выбора и возможность выбора типа вставки),
- специальная вставка - при выборе этой команды выводится диалоговое окно, где отображаются имеющиеся в наличии классы объектов. Имеется возможность сделать выбор - связь/внедрение; имеется возможность использования вместо объекта пиктограммы,
- создать связь, создать внедренный объект.
Не все команды отображаются или являются доступными; это зависит от состояния приложения и буфера обмена. Некоторые параметры элемента управления OLE даны в табл. 6.1.
Приложение OLE-сервер определяет множество операций (команд), которые могут выполняться над поставляемым им объектом. Каждый объект поддерживает собственный набор команд. Этот набор может изменяться во время работы приложения. OLE-объект получает список команд от приложения-сервера и доступ к этому списку команд осуществляет через свои свойства ( AutoVerbMenu, Verb, ObjectVerbs, ObjectVerbsCount ). Эти свойства доступны во время выполнения.
Практическая работа 41. OLE
41а. Элементарная операция OLE
Последовательность действий:
- Создать на форме элемент управления OLE для создания, например, связанного объекта,
- создать соответствующий файл, например, A:\ole1.xls (см. код, данный ниже),
- ввести код, данный ниже,
- стартовать проект, сделать щелчок на форме, наблюдать результат.
Private Sub Form_Click() OLE1.Class = "Worksheet" ' приложение Excel OLE1.SourceDoc = "A:\ole1.xls" ' имя файла ' использовать указанный блок данных OLE1.SourceItem = "A1A3:B1B3" OLE1.Action = 1 ' создать связанный объект End Sub
41в. OLE
Рассматривается загрузка объектов (см. процедуру Form_Load () в OLE-контейнер и реализация (по желанию пользователя) связывания/внедрения (см. процедуру Public Sub LinkEmb(FileName As String, Embed As Boolean) ). Последовательность действий:
- создать объекты: текстовый файл (приложение Word), таблицу (приложение Excel), базу данных (приложение Access), рисунок (приложение Paint),
- создать на форме элемент управления OLE (Name = ole1), два переключателя (Name = opt1 и opt2 соответственно, Caption = Link и Embed cоответственно), командную кнопку (Name = cmd1, Caption = Load Object), поле списка (Name = lst), табл. 6.1.
- ввести код данный ниже, стартовать проект,
- маркировать в поле списка lst, элемент, например, "Docum.Word", сделать щелчок на требуемом переключателе (Link или Embedding), затем сделать щелчок на командной кнопке "Load Object". В поле элемента OLE выводится соответствующий файл,
- сделать двойной щелчок в поле OLE на введeнном объекте.
В зависимости от того, какой переключатель использован (Link или Embed), вставленный объект выводится или в приложении Word для редактирования, или появляется возможность редактировать его средствами того приложения, в котором он находится. В случае Link внесeнные (пользователем) изменения остаются в исходном файле. Это можно проверить, загрузив файл в приложение Word.
' создать список объектов для загрузки в OLE-контейнер Private Sub Form_Load() With lst .AddItem ("Docum.Word") .AddItem ("Table.Excel") .AddItem ("Picture.Paint") .AddItem ("Database.Access") End With End Sub ' выбор загружаемого объекта (маркировать его в списке, см.: ' Select Case lst.ListIndex) и определение режима ' связывание/внедрение с учётом состояния переключателей Private Sub cmd1_Click() Select Case lst.ListIndex Case 0: LinkEmb "A:\nin.doc", opt1.Value Case 1: LinkEmb "A:\nin.xls", opt1.Value Case 2: LinkEmb "A:\nin.bmp", opt1.Value Case 3: LinkEmb "A:\nin.mdb", opt1.Value End Select End Sub ' в зависимости от значений переданных аргументов 'реализовать связь/внедрение Public Sub LinkEmb(FileName As String, Embed As Boolean) If Embed Then ole1.CreateEmbed FileName Else ole1.CreateLink FileName End If End Sub