Доброго времени суток, разрабатываю программу на Делфи, среда разработки Делфи 2007, ArcGIS Developer Kit 9.2/
Возник вопрос, как из IMapControl`a получить все слои, а не только "сгруппированые".
Пытался через IEnumLayer, но не смог разобраться как работает метод Next, и где в получить (кроме как ручного перебора) весь список слоев.
Если IEnumLayer единственный ключ к списку слоев ,хотелось бы узнать как получить доступ к атрибутивной информации которая храниться в слое, и QueryFilter`y.
Пожалуйста тыкните носом где искать.
Ответы и примеры можно писать на VB кое-как протранслирую.
Заранее Спасибо!
=Добавлено позже=
Если конкретизировать, есть такой код:
finally
IL:=pMap.Layers[pUID,true];
IL.Reset;
Edit1.Text:='1';
FL2:=IL.Next;
while FL2.Valid do Begin
Edit1.Text:=inttostr(strtoint(Edit1.Text)+1);
FL2:=IL.Next;
End;
end;
Код должен считать количество "реальных" слоев на карте, он работает, но в конце работы (при выходе из конструкции while ??? do) выдает ошибку "Access violation...".
Испытывались следующие варианты конструкции while ??? do:
1.
IL.Valid - аналогичная ошибка2.
IL<>nil - всегда тру...3.
IL<>null - ошибка компилятора
Подскажите пожалуйста:
0. Как правильно транслировать строку (VB6):
Do While Not pLayer Is Nothing
?
1. Как коректно работать с IEnumLayer, где ошибка в коде?
2. Нету ли другого пути к полному списку слоев в обход IEnumLayer?
Еще раз, Спасибо заранее!