Открывает диалог со списком слоев карты и возвращает слой, выбранный в нем.
Visual Basic:
Function DoSelectLayer(Title As String) As Layer
Title - заголовок диалога. Если строка пустая, заголовок по умолчанию: «Загруженные слои(N) - название карты (имя файла карты)», где N - число слоев карты.
Если выбрать слой и нажать «OK», метод возвращает этот слой как объект Layer. Если нажать «Отмена», метод возвращает Nothing (в python - None). Макрос ждет, пока диалог не будет закрыт.
Диалог с дополнительными настройками открывает метод DoSelectLayerEx.
Пример предлагает выбрать слой и сообщает его название и путь к файлам.
Visual Basic:
Sub MapDoc_DoSelectLayer 'Берем рабочую карту Set Doc = Zulu.ActiveMapDoc 'Диалог выбора слоя со своим заголовком Set L = Doc.DoSelectLayer("Выберите слой") If L Is Nothing Then MsgBox "Выбор отменен" Else MsgBox "Выбран слой """ & L.UserName & """" & vbCrLf & "файл: " & L.Name End If End SubPython:
import zulu def Macro_MapDoc_DoSelectLayer(): # Берем рабочую карту doc = zulu.App.ActiveMapDoc # Диалог выбора слоя со своим заголовком L = doc.DoSelectLayer("Выберите слой") if L is None: print("Выбор отменен") else: print("Выбран слой", repr(L.UserName)) print("файл:", L.Name)