Вызывает окно редактора символа.
Visual Basic:
Function EditSymbol(SymbolID As Long) As Long
SymbolID - ID символа в библиотеке символов слоя.
Если задан ключ объекта (SymbolID), то окно редактора символов открывается с уже загруженным символом, если указан ключ = 0, то редактор символов открывается в режиме создания нового символа.
Символы слоя и их ID перечисляет свойство Symbols.
Окно открывается на экране, поэтому вызывать метод имеет смысл только там, где с программой работает пользователь. Метод возвращает управление, когда пользователь закрывает окно редактора; кнопок «ОК» и «Отмена» у окна нет, символ сохраняется кнопкой «Сохранить».
С ключом, которого в библиотеке слоя нет, редактор открывается так же, как в режиме создания нового символа.
Метод возвращает ID сохранённого в редакторе символа: для существующего символа — его собственный ID, а для нового — ID, под которым символ добавлен в библиотеку слоя (число символов при этом увеличивается). Если в редакторе ничего не сохранено, метод возвращает -1.
Visual Basic:
Sub Layer_EditSymbol 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active If L.Symbols.Count = 0 Then MsgBox "В библиотеке слоя нет символов" Exit Sub End If 'Открываем редактор с первым символом библиотеки слоя SymbolID = L.Symbols.GetIdByIndex(0) MsgBox "EditSymbol(" & SymbolID & ") = " & L.EditSymbol(SymbolID) End SubPython:
import zulu def Macro_Layer_EditSymbol(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active if L.Symbols.Count == 0: print("В библиотеке слоя нет символов") return # Открываем редактор с первым символом библиотеки слоя symbol_id = L.Symbols.GetIdByIndex(0) print("EditSymbol(", symbol_id, ") =", L.EditSymbol(symbol_id))