Id property (LineStyleDef)

Возвращает ID стиля линии в коллекции стилей линий.

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

LineStyleDef

Синтаксис:

Visual Basic:

Property Id As Long

read-only

Описание:

У только что созданного описателя стиля свойство равно -1: ID выдается, когда стиль попадает в библиотеку стилей слоя методом AddItem коллекции LineStyles. Метод возвращает тот же номер, который потом показывает это свойство.

По этому номеру стиль берут из библиотеки методом ItemById; для несуществующего номера он возвращает Nothing. Номер по индексу дает метод GetIdByIndex.

Стиль, перенесенный в другой объект методом SetBLOB, свой номер не сохраняет: у объекта - приемника ID остается -1 до добавления в библиотеку.

Пример:

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

Visual Basic:

Sub LineStyleDef_Id
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
'Собираем стиль из одной линии
Set lsd = CreateObject("ZuluLib.LineStyleDef")
Set lse = CreateObject("ZuluLib.LineStyleElement")
lse.SetLineColor RGB(0, 128, 0)
lse.SetLineWidth 1
lsd.AddLineElement lse
S = "Id нового описателя: " & lsd.Id
'Кладем стиль в библиотеку стилей слоя
Id = L.LineStyles.AddItem(lsd, -1)
S = S & vbCrLf & "AddItem вернул: " & Id
'Берем стиль обратно по этому номеру
Set got = L.LineStyles.ItemById(Id)
S = S & vbCrLf & "Id стиля из библиотеки: " & got.Id
MsgBox S
End Sub

Python:

import zulu

def Macro_LineStyleDef_Id():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    # Собираем стиль из одной линии
    lsd = zulu.LineStyleDef()
    lse = zulu.LineStyleElement()
    lse.SetLineColor(32768)
    lse.SetLineWidth(1)
    lsd.AddLineElement(lse)
    print("Id нового описателя:", lsd.Id)
    # Кладем стиль в библиотеку стилей слоя
    ident = L.LineStyles.AddItem(lsd, -1)
    print("AddItem вернул:", ident)
    # Берем стиль обратно по этому номеру
    got = L.LineStyles.ItemById(ident)
    print("Id стиля из библиотеки:", got.Id)