HideMessage - Скрывать/показывать сообщения - Не всегда работает

Автор KrissKross, 28.01.24, 10:39:11

« назад - далее »

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

KrissKross

Задача
Поменять пути у чертежа и 3Д модели его породившего на новые

Условия появления
1. Устанавливаем свойство HideMessage = ksHideMessageYes или ksHideMessageNo
ссылка на справку
2. Программно меняются ссылки на новые имена файлов
2. Иногда на некоторых компьютерах
При открытии чертежа появляется сообщение о ручном изменении пути к 3Д модели
2.1. Причем что интересно - на изменения 3Д моделей в сборках сообщений не появляется - удивительное рядом

Вопрос
1. Не могу понять и отследить почему все таки появляются сообщения - ведь программно мы их отключаем
2. Может это зависит от версии Компаса - экспериментировал на 21 и 22 версии
3. Может дело в неочевидных настройках Компаса - которые надо поменять
4. Может кто сталкивался с подобным и знает как решать данную коллизию


Nipal

Как выглядит сообщение?

lavgirb

KrissKross, а можно привести участок кода?

Nipal

Цитата: lavgirb от 28.01.24, 12:23:47А можно привести участок кода?
Поиск по форуму, кода на данную тему хватает.

KrissKross

Цитата: Nipal от 28.01.24, 11:41:06Как выглядит сообщение?
Снимок экрана 2024-01-28 182030.png

Цитата: lavgirb от 28.01.24, 12:23:47KrissKross, а можно привести участок кода?
ApplicationKompas.HideMessage = ksHideMessageEnum.ksHideMessageNo;
document2d = (IKompasDocument2D)ApplicationKompas.Documents.Open(NewFullPath, true, false);

Проверяю один и тот же проект
на моем компе все работает прекрасно
а вот у коллеги - прям как заклинание - выскакивает сообщение на всех чертежах

Nipal

Значит HideMessage работает, проблема может быть в какой-то библиотеке, т.к. данный флаг глобальный и сохраняется при закрытии Компаса.

lavgirb

Цитата: KrissKross от 28.01.24, 10:39:111. Устанавливаем свойство HideMessage = ksHideMessageYes или ksHideMessageNo
...
1. Не могу понять и отследить почему все таки появляются сообщения - ведь программно мы их отключаем
Судя по скриншоту, сообщение не имеет вариантов ответа Да/Нет. В справке сказано, что отключаются сообщения с выбором вариантов Да или Нет. Вероятно по этому данное сообщение не подпадает под действие HideMessage.

lavgirb

Цитата: KrissKross от 28.01.24, 16:29:11на моем компе все работает прекрасно
а вот у коллеги - прям как заклинание - выскакивает сообщение на всех чертежах
Некоторые программы работают только в присутствии автора (шутка)

KrissKross, возможно (вариант), у Вас ссылки перезаписываются корректно, а у коллеги нет.
Поэтому система и предлагает выбрать файл. Который не находит.
А версии КОМПАС одинаковые?

Nipal

Цитата: lavgirb от 29.01.24, 10:04:15Судя по скриншоту, сообщение не имеет вариантов ответа Да/Нет. В справке сказано, что отключаются сообщения с выбором вариантов Да или Нет. Вероятно по этому данное сообщение не подпадает под действие HideMessage.
Есть тут вариант:
 да - заменить;
 нет - пропустить.

lavgirb

Цитата: Nipal от 29.01.24, 10:30:30Есть тут вариант:
 да - заменить;
 нет - пропустить.
Отменить, думаю третий вариант. Для всех - четвертый.
Да и Заменить не заменяет автоматом, а вызывает окно для выбора замены.

KrissKross

Цитата из справки
Цитата: undefined10. При открытии ассоциативного чертежа, когда файл модели, связанной с чертежом, отсутствует, константа ksHideMessageYes позволяет скрыть запрос с обработкой выбора варианта удаления из чертежа видов, связанных с отсутствующими моделями, константа ksHideMessageNo позволяет скрыть запрос с обработкой выбора варианта игнорировать отсутствующие модели

ссылка на SDK- HideMessage

мне кажется - тут не должно быть разночтений

похоже проблема в криво установленном Компасе

lavgirb

Цитата: KrissKross от 29.01.24, 10:44:04Цитата из справки
ссылка на SDK- HideMessage
мне кажется - тут не должно быть разночтений
Наверное, все-таки, да, не должно. Если брать вторую половину п. 10.