RUS  ENG 

Событие ElementsChanged event (MapCtrl), eEditorAction enum

Страницы: 1
RSS
Событие ElementsChanged event (MapCtrl), eEditorAction enum, Хотел узнать какое событие ElementsChanged описывается кодом 52 ( eEditorDeleteSegment )
 
Пользователь выполняет какую-то операцию с кодом 52 (eEditorDeleteSegment), после которой удаляется типизированный PolyContur.
Это действие выполняется пользователем всего один раз.

Версия ZuluServer 8.0.0.8726х64. Старая, но обновление поставить - отдельная бюрократическая история.

Заходил на следующие ресурсы для получения информации:
https://www.politerm.com/zuludoc/zuluax/MapCtrl_ElementsChanged.html
https://www.politerm.com/zuludoc/zuluax/eEditorAction_enum.html
 
Цитата
написал:
Пользователь выполняет какую-то операцию с кодом 52 (eEditorDeleteSegment), после которой удаляется типизированный PolyContur.
Это действие выполняется пользователем всего один раз.

Версия ZuluServer 8.0.0.8726х64. Старая, но обновление поставить - отдельная бюрократическая история.

Заходил на следующие ресурсы для получения информации:
https://www.politerm.com/zuludoc/zuluax/MapCtrl_ElementsChanged.html
https://www.politerm.com/zuludoc/zuluax/eEditorAction_enum.html
Добрый день. А в чем вопрос?
 
Не в том месте указал вопрос, прописал его в теме.
Хотел узнать какое событие ElementsChanged описывается кодом 52(eEditorDeleteSegment)?
И хотел понять почему может после этого события пропадать поликонтур? Событие возникает всего один раз для одного контура.
 
Цитата
написал:
Не в том месте указал вопрос, прописал его в теме.
Хотел узнать какое событие ElementsChanged описывается кодом 52(eEditorDeleteSegment)?
И хотел понять почему может после этого события пропадать поликонтур? Событие возникает всего один раз для одного контура.
Событие так и называется, удалить сегмент. Поликонтур может состоять из нескольких контуров (сегментов). Если частным случаем поликнтура является просто контур, то сегмент в объекте один, и удаление сегмента объекта приводит к удалению самого объекта.
 
Подскажите пожалуйста как сделать такое действие в Zulu? Если включить режим редактирования слоя и выбрать один из инструментов редактирования (кнопки со стрелочками: eEditModeSelect , eEditModeNodes ). То при нажатии на кнопку "Del" приходит код eEditorAction = (3 и 6 - eEditorDelObject и eEditorDeleteNode)
 
Цитата
написал:
Подскажите пожалуйста как сделать такое действие в Zulu? Если включить режим редактирования слоя и выбрать один из инструментов редактирования (кнопки со стрелочками: eEditModeSelect , eEditModeNodes ). То при нажатии на кнопку "Del" приходит код eEditorAction = (3 и 6 - eEditorDelObject и eEditorDeleteNode)
Если удалять весь объект, то Layer.DeleteElement https://politerm.com/zuludoc/zuluax/index.html#Layer_DeleteElement.html
А просто точку перелома в одно действие не удалить.
Нужно получить объект линейный или площадной. Например, Element.Contour, его отредактировать, например, удалить точку перелома, а потом перезаписать полигон

Set C = Element.Contour
C.DeletePoint(2)
Element.SetContour©
 
Разобрался с тем что происходит и как пользователь удаляет площадной объект с кодом 52 (eEditorDeleteSegment), алгоритм следующий:
  1. Включаю режим редактирования слоя
  2. Выбираю стрелочку "Узлы"
  3. Выделяю любой узел любого площадного типового(не знаю важно ли это) объекта
  4. Нажимаю правую кнопку мыши и во всплывающем меню выбираю "Удалить сегмент"
После этого весь площадной объект пропадает с карты
 
Цитата
написал:
Разобрался с тем что происходит и как пользователь удаляет площадной объект с кодом 52 (eEditorDeleteSegment), алгоритм следующий:
Включаю режим редактирования слоя
Выбираю стрелочку "Узлы"
Выделяю любой узел любого площадного типового(не знаю важно ли это) объекта
Нажимаю правую кнопку мыши и во всплывающем меню выбираю "Удалить сегмент"
После этого весь площадной объект пропадает с карты
Так всегда и работает, если объект состоит из одного контура или одной полилилинии (из одного сегмента), то выделение любого элемента объекта указывает какой сегмент, а команда его удаляет. Если сегмент один, то весь объект и удаляется. Если нет цели удалять объект, не надо вызывать эту команду.
Аналогично, если полилиния состоит из двух точек (отрезок), то удаление одной из точек приводит к удалению объекта
Изменено: Алексей Аширов - 10.02.2025 09:19:31
 
Спасибо!
Теперь всё понял. Просто тестировал на удаление точки из контура
Цитата
написал:
Set C = Element.ContourC.DeletePoint(2)Element.SetContour©
И удаление точки именно контура не приводило к событию с кодом 52. И контур не удалялся, если остаётся две точки, то DeletePoint не срабатывает.
В любом случае огромное спасибо! Теперь понятно что делать дальше.
Страницы: 1