Palette Set

Автор Тема: Palette Set  (Прочитано 14590 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN OPEN
  • ****
  • Сообщений: 393
  • Карма: 21
Palette Set
« : 29-02-2020, 11:09:48 »
Всех приветствую.
Кто-нибудь знает как получить список всех открытых PaletteSet в окне AutoCAD? Ещё интересует вопрос как деактивировать документ пока открыта PaletteSet?

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

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Palette Set
« Ответ #1 : 29-02-2020, 13:26:50 »
Ещё интересует вопрос как деактивировать документ пока открыта PaletteSet?
Что такое деактивировать документ?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Вильдар

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Re: Palette Set
« Ответ #2 : 29-02-2020, 13:37:19 »
По моему AcSmSheetSetMgr - отражает диспетчер подшивок
И, методом GetDatabaseEnumerator(), перебираешь, через Next(), подшивки AcSmDatabase.
 :o

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

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Palette Set
« Ответ #3 : 29-02-2020, 13:45:59 »
По моему AcSmSheetSetMgr - отражает диспетчер подшивок
И, методом GetDatabaseEnumerator(), перебираешь, через Next(), подшивки AcSmDatabase.
 :o
И какое это имеет отношение к PaletteSet ??? ?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 393
  • Карма: 21
Re: Palette Set
« Ответ #4 : 29-02-2020, 13:56:03 »
Что такое деактивировать документ?
Я хочу сымитировать modalwindow.

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

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Palette Set
« Ответ #5 : 29-02-2020, 14:00:24 »
Что такое деактивировать документ?
Я хочу сымитировать modalwindow.
А подробнее? PaletteSet в любом случае немодальные.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Palette Set
« Ответ #6 : 29-02-2020, 14:11:45 »
Кто-нибудь знает как получить список всех открытых PaletteSet в окне AutoCAD?
Открытого API (т.е. того, которым ты мог бы воспользоваться) для этого нет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 393
  • Карма: 21
Re: Palette Set
« Ответ #7 : 29-02-2020, 14:17:37 »
А подробнее? PaletteSet в любом случае немодальные.
Сначала я запрашиваю у пользователя выбор блока. Потом считываю значения атрибутов. Строю UserControl и передаю его в свой PaletteSet, вызываю его. И мне нужно, чтобы пользователь ничего не мог делать с чертежом, пока вызван PaletteSet. А поиск своей PaletteSet мне нужен для того, чтобы по нажатию кнопок, которые объявлены в UserControl, PaletteSet закрывался.
Можно конечно сделать стандартно через Window и ShowModalWindow. Но мне хочется стиль окна PaletteSet.

Отмечено как Решение Lemieux 29-02-2020, 21:03:58

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

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Palette Set
« Ответ #8 : 29-02-2020, 14:24:21 »
Строю UserControl и передаю его в свой PaletteSet, вызываю его ... А поиск своей PaletteSet мне нужен для того, чтобы по нажатию кнопок, которые объявлены в UserControl, PaletteSet закрывался.
А почему не хранить в UserControl ссылку на PaletteSet, чтобы ничего искать не нужно было?
И мне нужно, чтобы пользователь ничего не мог делать с чертежом, пока вызван PaletteSet
Так не получится. Вот единственный вариант: https://www.keanw.com/2016/02/disabling-autocads-complete-ui-using-net.html
Но тут возможна масса подводных камней. Так что будь осторожен.

P.S.: Добавил статью: http://adn-cis.org/kak-vremenno-zablokirovat-interfejs-autocad-pri-pomoshhi-.net-i-c.html
« Последнее редактирование: 29-02-2020, 15:20:08 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Вильдар

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Re: Palette Set
« Ответ #9 : 29-02-2020, 16:54:03 »
И какое это имеет отношение к PaletteSet  ?
Ой, перепутал.
А, что же тогда имеется ввиду? Любая палитра - и получить их все!?
Странно. Не хочу, чтобы мою палитру кто-то трогал :)

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

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Palette Set
« Ответ #10 : 29-02-2020, 16:56:43 »
И какое это имеет отношение к PaletteSet  ?
Ой, перепутал.
А, что же тогда имеется ввиду? Любая палитра - и получить их все!?
Странно. Не хочу, чтобы мою палитру кто-то трогал :)
Он свою найти не может. 😄
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 393
  • Карма: 21
Re: Palette Set
« Ответ #11 : 29-02-2020, 19:25:41 »
А почему не хранить в UserControl ссылку на PaletteSet, чтобы ничего искать не нужно было?
Это как? Объявить глобальную переменную, например так
Код - C# [Выбрать]
  1. PaletteSet lxPS = null;
поместить туда созданный PaletteSet, а потом в классе, где описывается UserControl обращаться к этой переменной?

У меня ещё один вопрос. Я почему-то не могу назначить положение PaletteSet при инциализации. Не помогают ни метод SetLocation, ни свойство Location.

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

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Palette Set
« Ответ #12 : 29-02-2020, 20:39:39 »
Это как? Объявить глобальную переменную, например так
Код - C# [Выбрать]

    PaletteSet lxPS = null;

поместить туда созданный PaletteSet, а потом в классе, где описывается UserControl обращаться к этой переменной?
Можно и так, а можно в классе унаследованном от UserControl внести переменную типа PaletteSet, где хранить значение твоей PaletteSet.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Palette Set
« Ответ #13 : 29-02-2020, 20:45:45 »
Я почему-то не могу назначить положение PaletteSet при инциализации. Не помогают ни метод SetLocation, ни свойство Location.
PaletteSet запоминает свой размер и положение в файле profile.aws и соответственно при следующем запуске восстанавливает их.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 393
  • Карма: 21
Re: Palette Set
« Ответ #14 : 29-02-2020, 21:39:20 »
Я почему-то не могу назначить положение PaletteSet при инциализации. Не помогают ни метод SetLocation, ни свойство Location.
PaletteSet запоминает свой размер и положение в файле profile.aws и соответственно при следующем запуске восстанавливает их.
И как мне выйти из ситуации? Как я понял это профиль рабочего пространства AutoCAD?

PS Когда блокирую AutoCAD, то и PaletteSet блокируется.
« Последнее редактирование: 29-02-2020, 22:50:17 от Lemieux »