EditSymbol method (Layer)

Вызывает окно редактора символа.

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

Layer

Синтаксис:

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 Sub

Python:

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))