Тема: Программное снятие выделения
можно ли средствами VBA снять выделение (а-ля shortcut "Deselect All")?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Программное снятие выделения
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
можно ли средствами VBA снять выделение (а-ля shortcut "Deselect All")?
Недавно сам столкнулся с этой проблемой и нащупал более надежный способ:
ThisDrawing.ActiveSelectionSet.Highlight False
насколько знает Help - ActiveSelectionSet readonly, так что никакой Clear тут работать не может, а Highlight всего лишь показывает выделение не видимым. Тобто после Highlight false в коллекции ActiveSelectionSet всёравно остаются все элементы. Разве не так?
PS решил я иначе - написал на лиспе функцию, и вызвал её из ВБА
> Mitek
Если я правильно перевел, то
.Highlight False
именно удаляет подсвеченный объект из набора.
Signature
object.Highlight HighlightFlag
Object
All Drawing Objects, SelectionSet, AttributeReference, Group
The object or objects this method applies to.
HighlightFlag
Boolean; input-only
TRUE: The object is highlighted.
FALSE: The existing highlight is removed from the object.
Это из хелпа. Сам, правда, не пробовал.
Кроме того передав ActiveSelectionSet объектной переменной можно делать с ней все, что угодно. Лисп здесь не нужен. Но, возможно, с Лиспом и интереснее.
Господа!
Что-то я теряю нить...
Был вопрос:можно ли средствами VBA снять выделение
Ответ: Да, можно.
Вот простейший тест, попробуйте сами -
Dim ss As AcadSelectionSet Set ss = ThisDrawing.ActiveSelectionSet ss.Clear ss.Highlight False
Далее.
При чем здесь LISP? Давайте так и до Assembler'а
дойдем...
Кстати, метод clear прекрасно чистит ActiveSelectionSet, а метод Highlight False снимает именно подсветку (выделение) с объектов, оставляя их в наборе. Но ведь это было целью вопрошающего? Или в термин "выделение" вкладывался какой-то иной неизвестный мне смысл???
> LeonidSN
только в отладчике это код не работает
но про обычном исполнении очень даже.
спасибо
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Программное снятие выделения
Форум работает на PunBB, при поддержке Informer Technologies, Inc