Проблема с DrawableOverrule для ProfileView

Автор Тема: Проблема с DrawableOverrule для ProfileView  (Прочитано 5122 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Может, кто по симптомам поможет.
Перерисовываю вид профиля ProfileView DrawableOverrule.
Вот что происходит при перемещении за ручку (другие случаи пока не смотрел):

После регенерации - прорисовывается.
Во время перетаскивания у drawable пустой Id. При этом, пропускаю свою прорисовку и вызываю базовую.
Иногда вид профиля вообще не перемещается за ручку.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Проблема с DrawableOverrule для ProfileView
« Ответ #1 : 19-04-2018, 11:35:13 »
Поиграйся с включением/отключением аппаратного ускорения в AutoCAD и переключением визуальных стилей.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Проблема с DrawableOverrule для ProfileView
« Ответ #2 : 19-04-2018, 11:36:09 »
Иногда вид профиля вообще не перемещается за ручку.
Даже без твоего DrawableOverrule или только с ним?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Re: Проблема с DrawableOverrule для ProfileView
« Ответ #3 : 19-04-2018, 12:18:14 »
Блин. Попробовал всегда пропускать свою прорисовку, даже когда drawable id не пустой.
Все нормально прорисовывается.
Проблема в моей прорисовке.
А что не рекомендуется делать при DrawableOverrule?
Например, транзакции можно запускать?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Проблема с DrawableOverrule для ProfileView
« Ответ #4 : 19-04-2018, 12:22:29 »
Например, транзакции можно запускать?
В принципе можно, если всё корректно завершается. Только в них нужно осторожно выполнять модификации объектов/примитивов, так как это приводит к дополнительной перерисовке, т.е. может быть бесконечный цикл. Попробуй заменить на эмуляцию транзакции (или вообще на Open/Close)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: Проблема с DrawableOverrule для ProfileView
« Ответ #5 : 19-04-2018, 12:34:17 »
Насколько я помню, всё именно так - надо убрать транзакции. Вообще, лучше забыть про транзакции в методах Overrule. Да и вообще в любых не-командных. Но и после этого у меня не самое правильное поведение при перемещении ВП, но я пока оставил так:


Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Re: Проблема с DrawableOverrule для ProfileView
« Ответ #6 : 19-04-2018, 14:29:25 »
Да, поменял на StartOpenCloseTransaction и стало норм.  ;)
Еще мне нужно менять свойства профиля.
В самой DrawableOverrule похоже это лучше не делать.
Сам объект drawable обычно не открыт на запись. А если его открыть на запись UpgradeOpen, то он потом перестает нормально выделяться.

Спасибо всем!)

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Проблема с DrawableOverrule для ProfileView
« Ответ #7 : 19-04-2018, 16:04:07 »
В самой DrawableOverrule похоже это лучше не делать.
Это точно.
А если его открыть на запись UpgradeOpen, то он потом перестает нормально выделяться.
Это если ты его таким и оставил, а не выполнил потом DowngradeOpen.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение