DoSelectLayerEx method (MapDoc)

Открывает диалог со списком слоев карты с дополнительными настройками и возвращает слой, выбранный в нем.

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

MapDoc

Синтаксис:

Visual Basic:

Function DoSelectLayerEx(Title As String, Options As Long) As Layer

Title - заголовок диалога. Если строка пустая, заголовок по умолчанию: «Загруженные слои(N) - название карты (имя файла карты)», где N - число слоев карты.

Options - настройки диалога в виде битовых флагов:

1 - не выводить флажок «Показывать имена файлов»,

2 - не выводить в список растровые слои.

Описание:

Метод работает так же, как DoSelectLayer: после «OK» возвращает выбранный слой, после «Отмена» - Nothing (в python - None). С Options = 0 диалог такой же, как у DoSelectLayer.

Флаг 1 убирает флажок «Показывать имена файлов» внизу окна. Флаг 2 список не меняет: растровые слои (файлы .zrs) и слой рельефа остаются в нем при любом значении Options.

Пример:

Пример открывает диалог без флажка «Показывать имена файлов» и делает выбранный слой активным.

Visual Basic:

Sub MapDoc_DoSelectLayerEx
'Берем рабочую карту
Set Doc = Zulu.ActiveMapDoc
'Диалог выбора слоя, флаг 1 - без флажка «Показывать имена файлов»
Set L = Doc.DoSelectLayerEx("Какой слой сделать активным?", 1)
If L Is Nothing Then
  MsgBox "Выбор отменен"
Else
  'Active присваивается без Set: с Set - ошибка 438
  Doc.Layers.Active = L
  MsgBox "Активный слой: " & Doc.Layers.Active.UserName
End If
End Sub

Python:

import zulu

def Macro_MapDoc_DoSelectLayerEx():
    # Берем рабочую карту
    doc = zulu.App.ActiveMapDoc
    # Диалог выбора слоя, флаг 1 - без флажка «Показывать имена файлов»
    L = doc.DoSelectLayerEx("Какой слой сделать активным?", 1)
    if L is None:
        print("Выбор отменен")
    else:
        doc.Layers.Active = L
        print("Активный слой:", doc.Layers.Active.UserName)