Отличительной особенностью ОС Windows 32x является использование технологии встраивания объектов. Объект – это фрагмент, сформированный в одном приложении и вставленный в другое. Например, электронная таблица MS Excel помещенная в документ MS Word. При этом сохраняется связь с родительской программой и внедренный фрагмент можно обрабатывать не покидая программу приемник. Данная технология это OLE механизм вставки объектов.
При разработке программ в среде Visual Basic для работы с OLE технологией используется одноименный визуальный компонент .
Методы компонента:
Метод | Назначение |
CreateEmbed "", "Word.Document" | Создание объекта MS Word. |
CreateEmbed "", "excel.sheet" | Создание объекта MS Excel. |
CreateEmbed "", "Paint.Picture" | Создание объекта — растра. |
InsertObjDlg | Активизация диалога для выбора объекта. |
CreateLink | Создание объекта из файла со связью. |
Примеры:
Private Sub Command1_Click()
OLE1.CreateEmbed "", "Word.Document"
End Sub
Private Sub Command2_Click()
OLE1.CreateEmbed "", "excel.sheet"
End Sub
Private Sub Command3_Click()
OLE1.CreateEmbed "", "Paint.Picture"
End Sub
Private Sub Command4_Click()
OLE1.InsertObjDlg
End Sub
Private Sub Command5_Click()
OLE1.CreateLink "c: emp est.bmp"
End Sub
Private Sub Form_Click()
OLE1.SizeMode = vbOLESizeAutoSize
OLE1.InsertObjDlg
End Sub
OLE объект можно сохранить в файле как двоичный блок данных, а затем прочитать сохраненные данные (восстановить объект). Для этого используются методы:
SaveToFile n – запись в файл.
ReadFromFile n – чтения из файла.
n – номер файла
Пример. Сохранение OLЕ объекта и его восстановление.
Private Sub Command1_Click()
Open "c: emp est.ole" For Binary As #1
OLE1.SaveToFile 1
Close 1
End Sub
Private Sub Command2_Click()
Open "c: emp est.ole" For Binary As #1
OLE1.ReadFromFile 1
OLE1.SizeMode = vbOLESizeAutoSize
Close 1
End Sub
Для управления выводом объекта в поле OLE контейнера служит свойство SizeMode, которому нужно присвоить код – константу.
Константы для управления выводом информации в OLE контейнере:
Константа | Назначение |
vbOLESizeClip (0) | Усечение объекта по границам окна контейнера. |
vbOLESizeStretch (1) | Увеличение объекта до границ контейнера. |
vbOLESizeAutoSize (2) | Изменение размера контейнера под встраиваемый объект. |
vbOLESizeZoom (3) | Пропорциональное увеличение объекта по границам контейнера. |