Здравствуйте, Александр)
Не поможет, или нельзя получить доступ к вставляемому объекту до вставки?
Суть проблемы:
Я пишу приложение которое позволяет чертить линии связи (ЛС), составленные из отдельных соединенных на концах отрезков. Данные храню во внешней БД, так как работаю с несколькими чертежами.
При черчении кабеля, при создании Т образного ответвления, происходит разбиение отрезка на два отрезка в точке отведения, для удобства последующего редактирования.
Если удалить отрезок ЛС посередине, то она разобьется на две разные ЛС.
Так вот, при отмене (Undo), в месте создание Т образного ответвления, удаляется два отрезка и на их место возвращается один. Из за этого ЛС разбивается на две, чего быть не должно. Корректно обработать этот случай оказалось затруднительным.
До отмены:
http://prntscr.com/kau1ms
После отмены:
http://prntscr.com/kau1db
Я решил попробовать реализовать свой стек операции отмены, выполняющийся параллельно со стеком отмены автокада, работающий для определенных объектов программы и удаляющий их через команду Erase.
Решение работает, но проблема в том, что при копировании объектов программы и сторонних объектов получается затирать только историю отмены для всего чертежа, а хотелось бы только для объектов созданных в программе.
P.s.
Есть две копии внешней БД:
1) Соответствующий текущему чертежу.
2) Соответствующий bak файлу чертежа.
Удаленные с чертежа объекты удаляются полностью и из внешней БД, нигде далее не хранятся, в том числе и этот отрезок. Можно было бы их все хранить, помечая как удаленные... В любом случае корректно обработать удаление двух отрезков и возврат одного без разбиения ЛС мне не удалось.