xData примитива в окно Properties

Автор Тема: xData примитива в окно Properties  (Прочитано 13992 раз)

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

Оффлайн Sergey_KАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 2
Re: xData примитива в окно Properties
« Ответ #15 : 29-08-2019, 13:44:19 »
Александр, ясно.
Ещё один вопрос:
Два свойства. Одно зависит от другого. При изменении ведущего возникает необходимость сообщить зависимому, что оно изменено и список нужно обновить. Как это сделать? Не могу найти

Если быть точным, то можно, но тогда нужно создавать не с помощью wizard

Можно и руками, если понять схему выгрузки, а ещё лучше + пример

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: xData примитива в окно Properties
« Ответ #16 : 29-08-2019, 14:33:47 »
При изменении ведущего возникает необходимость сообщить зависимому, что оно изменено и список нужно обновить. Как это сделать? Не могу найти
В XXX::SetCurrentValueData вызываешь:
Код - C++ [Выбрать]
  1. if (m_pNotify) m_pNotify->OnChanged(pUnk);
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Sergey_KАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 2
Re: xData примитива в окно Properties
« Ответ #17 : 29-08-2019, 14:45:01 »
if (m_pNotify) m_pNotify->OnChanged(pUnk);

Дело не в этом, а в том что нужно вызвать метод одного класса из другого класса...
Из одного пропертия обновить другое.
При том что переменные динамические, ещё и поймать момент, когда значения действительны

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: xData примитива в окно Properties
« Ответ #18 : 29-08-2019, 14:54:49 »
Из одного пропертия обновить другое.
Так не получится. Изменение какого-то динамического свойства (через SetCurrentValueData) приводит к вызову GetCurrentValueData для других свойств ассоциированных с этим объектом (объектами). Так, например, работает у меня в GeomProps, когда меняют "Линейный масштабный коэффициент". При этом все ассоциированные свойства (периметр, площадь, объем) пересчитываются.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Sergey_KАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 2
Re: xData примитива в окно Properties
« Ответ #19 : 29-08-2019, 15:07:06 »
Так не получится. Изменение какого-то динамического свойства (через SetCurrentValueData) приводит к вызову GetCurrentValueData для других свойств ассоциированных с этим объектом

У меня не приводит... Имеются 2 enuma. Изменение одного, должно вызывать изменение списка второго. Но список обновляется только при сбросе набора и повторном выборе.
По идее, если в момент между connect и disconnect передать два указателя *m_pNotify и this, то из SetCurrentValueData одного свойства можно вызвать m_pNotify->OnChanged(this) другого...

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: xData примитива в окно Properties
« Ответ #20 : 29-08-2019, 15:13:22 »
По идее, если в момент между connect и disconnect передать два указателя *m_pNotify и this, то из SetCurrentValueData одного свойства можно вызвать m_pNotify->OnChanged(this) другого...
Очень сильно сомневаюсь. В COM такие вещи не делают. Почитай в Autodesk ObjectARX for AutoCAD 20XX: Developer's Guide > Using COM for ObjectARX Development > Property Inspector and Properties Palette APIs > Property Inspector Notification Framework >
Setting Up Property Event Notifications
. Может что-то полезное раскопаешь.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Sergey_KАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 2
Re: xData примитива в окно Properties
« Ответ #21 : 30-08-2019, 11:30:52 »
Решилось гораздо проще, без хитромудрых интерфейсов COM:
1. сохранить указатель на объект класса свойства
2. из другого свойства через указатель - установка нужных значений локальных переменных класса, например    m_enumLenght,  *m_enumType, m_readOnly и т.д.
И не трогать динамические переменные COM интерфейса