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

Есть объекты, созданные кистью (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
    ...

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

Сань , ссори , я установил твой мактрик, теперь работает как положено , а тогда когда первый раз его закидывал , почему то активировался Oberon . я его тоже пытался поставить когда то, но так и не пользовался )
ну я и подумал на твой )))))) а вообще объявляю большую благодарность . по поводу sToolsShape.DeArtBrush
поймешь когда посмотришь мой урок рисуем волосы )

Страницы