Всем привет. Нужно запрограммировать свою кнопку на VB6, при нажатии на которую выделялся объект на карте из определенного слоя.
Пробовал как в этой теме
https://forum.esri-cis.ru/index.php?qa=35643 но сист ругается на FindLayer.
Код:
Private Sub CommandButton1_Click()
Dim name_route As String
name_route = ComboBox2.Text
Dim mxDoc As IMxDocument
Set mxDoc = Application.Document
'поиск слоя, из которого будет производиться выборка
Dim lyr As IFeatureLayer
Select Case ComboBox1.ListIndex
Case 0: 'Трамвай
Set lyr = FindLayer(mxDoc.FocusMap, "Трамвай")
'получение интерфейса выборки
Dim sel As IFeatureSelection
Set sel = lyr
'создание фильтра запроса
Dim filter As IQueryFilter
Set filter = New QueryFilter
'установка WHERE-запроса и пространственной привязки
filter.WhereClause = "Num_route =" + ComboBox2.Text
Dim shapeField As String
shapeField = lyr.FeatureClass.ShapeFieldName
Set filter.OutputSpatialReference(shapeField) = mxDoc.FocusMap.SpatialReference
'очистка существующей выборки на экране
mxDoc.ActiveView.PartialRefresh esriViewGeoSelection, Nothing, Nothing
'выбор объектов и установка новой выборки
sel.SelectFeatures filter, esriSelectionResultNew, False
mxDoc.ActiveView.PartialRefresh esriViewGeoSelection, Nothing, Nothing
Dim selEvents As ISelectionEvents
Set selEvents = mxDoc.FocusMap
selEvents.SelectionChanged
Case 1: 'Троллейбус
Set lyr = FindLayer(mxDoc.FocusMap, "Троллейбус")
Case 2: 'Автобус
Set lyr = FindLayer(mxDoc.FocusMap, "Автобус")
Case 3: 'Метро
Set lyr = FindLayer(mxDoc.FocusMap, "Метро")
Case 4: 'Станции метро
Set lyr = FindLayer(mxDoc.FocusMap, "Станции метро")
End Select
End Sub