Тема: удален ли объект?
Добрый Всем день!
Как проверить на VBA не удален ли графический объект, на который ссылается переменная (глобальная)?
Спасибо.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → удален ли объект?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Добрый Всем день!
Как проверить на VBA не удален ли графический объект, на который ссылается переменная (глобальная)?
Спасибо.
> byrik
If Not myObject IsNothing Then
<< Don't worry, be happy >>
End If
~'J'~
Скорее так:
If TypeName(MyObject) <> "Nothing" Then
<< Don't worry, be happy >>
End If
но когда удаляешь объект (команда ACADa delete) - он не удаляется из базы чертежа, поэтому в переменной MyObject хранится ссылка на объект, а не Noting и данный метод не работает.
какие еще мысли?
Вот, кое что навоял... неуверен - может есть и проще варианты.
Можно анализировать состояние объекта Err (это наверное правильнее), но для моих задач вполне хватило варианта ниже
Private Function isDeleted(myObject As AcadEntity) As Boolean Dim tObj As AcadEntity On Error Resume Next Set tObj = ThisDrawing.HandleToObject(myObject.Handle) Err.Clear If TypeName(tObj) = "Nothing" Then isDeleted = True Else isDeleted = False End If End Function
> byrik
Вообще-то хорошей практикой считается обнуление
объектов после удаления или после использования.
Set obj = Nothing
к сожалению, сам грешен - редко использую,
поэтому и "болтаются в чертеже неприколоченные
указатели на объекты" (цитата от VK)
~'J'~
> Fatty
Вообще-то я имел ввиду удалением пользователем (интерактивно).
Есть некий объект чертежа, на который ссылается глобальная переменная (для возможности ввода "по умолчанию"), котороая "живет" в течении сессии работы с данным файлом.
Вторая проблема России тут не страшна, а вот с первой приходится бороться :))
Собственно, это защита от него самого....
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → удален ли объект?
Форум работает на PunBB, при поддержке Informer Technologies, Inc