GetBLOB method (LineStyleDef)

Возвращает стиль линии в виде бинарного объекта (от BLOB - binary large object).

Применяется к:

LineStyleDef

Синтаксис:

Visual Basic:

Function GetBLOB()

Описание:

Метод возвращает переменную типа VARIANT, которая содержит массив байт (VT_UI1 | VT_ARRAY).

В блок попадают элементы стиля со всеми их параметрами. Номер стиля и его название в блок не входят - у объекта, заполненного методом SetBLOB, Id остается -1.

Пара GetBLOB и SetBLOB - обычный способ перенести стиль в другой слой: блок отдается из библиотеки одного слоя и принимается описателем, который добавляют в библиотеку другого.

В макросах на python метод недоступен: он возвращает None, и передавать в SetBLOB оказывается нечего - описатель остается без элементов, а AddItem такого описателя возвращает -1.

Пример:

Пример копирует стиль линии внутри слоя через двоичный блок.

Visual Basic:

Sub LineStyleDef_GetBLOB
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
'Штриховой стиль слоя с номером 4
Set src = L.LineStyles.ItemById(4)
b = src.GetBLOB
S = "Размер блока: " & (UBound(b) - LBound(b) + 1) & " байт"
'Переносим стиль в новый описатель
Set dst = CreateObject("ZuluLib.LineStyleDef")
S = S & vbCrLf & "SetBLOB: " & dst.SetBLOB(b)
S = S & vbCrLf & "элементов было " & src.StyleElements.Count & ", стало " & dst.StyleElements.Count
S = S & vbCrLf & "Id копии до добавления: " & dst.Id
MsgBox S
End Sub