SetBLOB method (LineStyleDef)

Копирует стиль линии из массива двоичных данных (от BLOB - binary large object).

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

LineStyleDef

Синтаксис:

Visual Basic:

Function SetBLOB(vBlob) As Boolean

vBlob - VARIANT с массивом байт.

Описание:

Переменная типа VARIANT должна содержать массив байт (VT_UI1 | VT_ARRAY). Если входные данные распознаны как содержащие стиль линии, они будут скопированы в объект, и метод вернет True. В противном случае метод вернет False.

Посторонние данные (например, строка) отвергаются без исключения: метод просто возвращает False, а объект остается прежним.

Принятый блок заменяет набор элементов объекта целиком - параметры элементов совпадают с исходными. Номер стиля из блока не восстанавливается: Id остается -1, пока стиль не добавлен в библиотеку слоя методом AddItem.

В макросах на python метод бесполезен: единственный источник блока - GetBLOB, а он там возвращает None, и метод отвечает False.

Пример:

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

Visual Basic:

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