Подключает к слою файл раскраски с заданным именем в качестве временного варианта раскраски.
Visual Basic:
Sub SetTemporaryTheme(FileName As String)
FileName - имя подключаемого файла раскраски.
Подключаемый файл раскраски не добавляется в список постоянных раскрасок слоя. Это раскраска временная и действует только на период подключения к слою. При подключении к слою на сервере эта раскраска не будет видна и доступна другим пользователям.
Подключаемый файл раскраски может быть создан и заполнен через объект Theme.
Порядок такой: Create(путь к файлу, название, путь к слою) создает раскраску, Parameter(ключ объекта, поле) задает объекту цвет или другой параметр, Save записывает файл.
После подключения раскраска появляется в коллекции Themes слоя - с названием из Create и признаком «включена». Метод ничего не возвращает и на несуществующий файл не жалуется - раскрасок в этом случае просто не прибавляется.
Пустая строка раскраску не снимает: она остается в коллекции. Чтобы ее погасить, есть методы коллекции - SetEnabled(ID, False) и DisableAll.
Пример делает свой файл раскраски, подключает его к слою как временный и гасит.
Visual Basic:
Sub Layer_SetTemporaryTheme 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active 'Делаем свой файл раскраски и красим в нем первый объект слоя Path = "C:\Data\proba_theme.zlt" Set T = CreateObject("ZuluLib.Theme") T.Create Path, "Проба раскраски", L.Name T.Parameter(L.ElementKeys.Item(1), 1) = 255 T.Save T.Close 'Подключаем раскраску как временную S = "Раскрасок было: " & L.Themes.Count L.SetTemporaryTheme Path S = S & vbCrLf & "стало: " & L.Themes.Count If L.Themes.Count > 0 Then Id = L.Themes.ThemeId(0) S = S & vbCrLf & "ID " & Id & ", включена: " & L.Themes.GetEnabled(Id) 'Гасим её L.Themes.SetEnabled Id, False S = S & vbCrLf & "после выключения: " & L.Themes.GetEnabled(Id) End If MsgBox S End SubPython:
import zulu def Macro_Layer_SetTemporaryTheme(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active # Делаем свой файл раскраски и красим в нем первый объект слоя path = r"C:\Data\proba_theme.zlt" t = zulu.Theme() t.Create(path, "Проба раскраски", L.Name) t.SetParameter(L.ElementKeys.Item(1), 1, 255) t.Save() t.Close() # Подключаем раскраску как временную print("Раскрасок было:", L.Themes.Count) L.SetTemporaryTheme(path) print("стало:", L.Themes.Count) if L.Themes.Count > 0: ident = L.Themes.ThemeId(0) print("ID", ident, ", включена:", L.Themes.GetEnabled(ident)) # Гасим её L.Themes.SetEnabled(ident, False) print("после выключения:", L.Themes.GetEnabled(ident))