StyleElements property (LineStyleDef)

Возвращает коллекцию LineStyleElements - набор одиночных линий и символов, из которых собран стиль линии.

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

LineStyleDef

Синтаксис:

Visual Basic:

Property StyleElements As LineStyleElements

read-only

Описание:

Элементы в коллекции нумеруются с нуля, обращение по номеру Count возвращает Nothing. У простого стиля один элемент, у штрихового или штрих-пунктирного их несколько; у нового описателя стиля коллекция пуста, пока в него не добавлены элементы методами AddLineElement и AddSymbolElement.

Свойство отдает не копию, а сам набор стиля: два обращения подряд дают один и тот же объект.

Параметры элемента читаются его методами GetLineType, GetLineColor, GetLineWidth, GetLineStep, GetLineDash и другими, а видимость элемента в стиле - методом GetElemVisible самой коллекции. У линейного элемента GetSymbol возвращает Nothing.

Пример:

Пример разбирает штриховой стиль слоя на элементы.

Visual Basic:

Sub LineStyleDef_StyleElements
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
'Стиль линии с номером 4 - штриховой
Set lsd = L.LineStyles.ItemById(4)
If lsd Is Nothing Then
  MsgBox "В слое нет стиля с номером 4"
  Exit Sub
End If
Set els = lsd.StyleElements
S = "Элементов в стиле: " & els.Count
'Нумерация элементов с нуля
For i = 0 To els.Count - 1
  Set e = els.Item(i)
  S = S & vbCrLf & i & ": цвет " & e.GetLineColor & ", толщина " & e.GetLineWidth & _
      ", шаг " & Round(e.GetLineStep, 2) & ", штрих " & Round(e.GetLineDash, 2) & _
      ", виден " & els.GetElemVisible(i)
Next
MsgBox S
End Sub

Python:

import zulu

def Macro_LineStyleDef_StyleElements():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    # Стиль линии с номером 4 - штриховой
    lsd = L.LineStyles.ItemById(4)
    if lsd is None:
        print("В слое нет стиля с номером 4")
        return
    els = lsd.StyleElements
    print("Элементов в стиле:", els.Count)
    # Нумерация элементов с нуля
    for i in range(els.Count):
        e = els.Item(i)
        print(i, ": цвет", e.GetLineColor(), ", толщина", e.GetLineWidth(),
              ", шаг", round(e.GetLineStep(), 2), ", штрих", round(e.GetLineDash(), 2),
              ", виден", els.GetElemVisible(i))