Themes property (Layer)

Возвращает коллекцию Themes тематических раскрасок слоя.

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

Layer

Синтаксис:

Visual Basic:

Property Themes As Themes

read-only

Описание:

Раскраски слоя нумеруются с нуля. У каждой есть ID (ThemeId), название для пользователя (ThemeUserName) и имя (ThemeName) - им служит полный путь к файлу раскраски рядом со слоем, с расширением вида .c00. Номер и ID связывает метод GetIndexById, а сам объект раскраски дает GetTheme.

Включение и выключение - методами SetEnabled, GetEnabled и DisableAll; одновременно может быть включено несколько раскрасок. Новая раскраска появляется в коллекции после CreateTheme и создается выключенной; временную раскраску из файла добавляет SetTemporaryTheme.

Убрать раскраску из коллекции через объектную модель нечем: метод Remove объекта Theme проходит без ошибки, но число раскрасок не меняется.

Пример:

Пример создает раскраску по первому фильтру слоя, перечисляет раскраски и гасит их.

Visual Basic:

Sub Layer_Themes
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
S = "Раскрасок у слоя: " & L.Themes.Count
'Если фильтры есть, делаем по первому из них раскраску
If L.ThemeFilters.Count > 0 Then
  Id = L.CreateTheme(L.ThemeFilters.GetIdByIndex(0), -1, "Проба раскраски")
  L.Themes.SetEnabled Id, True
  S = S & vbCrLf & "создана раскраска " & Id
End If
'Перечисляем раскраски слоя
For i = 0 To L.Themes.Count - 1
  Id = L.Themes.ThemeId(i)
  S = S & vbCrLf & "номер " & i & ": ID " & Id & ", " & L.Themes.ThemeUserName(i) & _
      ", включена " & L.Themes.GetEnabled(Id)
Next
'Гасим все раскраски
L.Themes.DisableAll
S = S & vbCrLf & "после DisableAll включенных нет"
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_Themes():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    print("Раскрасок у слоя:", L.Themes.Count)
    # Если фильтры есть, делаем по первому из них раскраску
    if L.ThemeFilters.Count > 0:
        ident = L.CreateTheme(L.ThemeFilters.GetIdByIndex(0), -1, "Проба раскраски")
        L.Themes.SetEnabled(ident, True)
        print("создана раскраска", ident)
    # Перечисляем раскраски слоя
    for i in range(L.Themes.Count):
        ident = L.Themes.ThemeId(i)
        print("номер", i, ": ID", ident, ",", L.Themes.ThemeUserName(i),
              ", включена", L.Themes.GetEnabled(ident))
    # Гасим все раскраски
    L.Themes.DisableAll()
    print("после DisableAll включенных нет")