Программно удалить базовую линию

Есть объекты, созданные кистью (ArtisticMediaBrush).
Хочу программно отделить кисть от базовой линии и удалить последнюю.
Отделить кисть от базовой линии не проблема, но удалить базовую линию не получается. код выдаёт ошибку, что ссылка на объект больше не существует.

Вот код.
    Dim shp As CorelDRAW.Shape
    
    Set shp = ActiveLayer.Shapes(2)
    shp.CreateSelection
    shp.Shapes(1).AddToSelection
    ActiveSelection.Separate

    shp.Delete

    Set shp = Nothing

При передаче массива объектов в ShapeRange во время разделения тоже не выдаёт ошибку.

Вот код.
    Dim shp As CorelDRAW.Shape
    Dim shp As CorelDRAW.ShapeRange
    
    Set shprng = ActiveLayer.Shapes(2)
    shp.CreateSelection
    shp.Shapes(1).AddToSelection
    Set shprng  = ActiveSelection.Separate
    ...

Может кто-то знает как выполнить эту задачу по другому.

В первом посте есть описка.
Вместо

Dim shp As CorelDRAW.ShapeRange

должно быть

Dim shprng As CorelDRAW.ShapeRange

А не проще использовать уже готовый макрос sToolsShape.DeArtBrush? :)

Сань! я загубил свою х6 - 64 поставив этот макрос sToolsShape.DeArtBrush) сейчас вспоминаю как его название что бы удалить ..

Alexxx1, макросы "губить" программу не умеют :D

Вот такая хрень выскакивает , и потом все висит )

Так ведь буквально только недавно писали: ColorReplacer
В GetKeyState после Declare вставить PtrSafe

Alexxx1, так я и не понял, причём тут мой макрос sToolsShape.DeArtBrush. Судя по скрину он даже не установлен у тебя.
Вот и я говорю.
Санчес, а чего это у тебя на форуме комменты ни удалить ни поправить нельзя?
MBK, править можно как обычно в течении 30 минут. Удалять нельзя. Сколько можно повторять то уже...
А чего ты кнопочку удаления не сделаешь?

Страницы