Прерывание процедуры сохранения файла

Автор Тема: Прерывание процедуры сохранения файла  (Прочитано 6223 раз)

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

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

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

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
Есть ли возможность в процессе отработки события OnSaveDocument прервать прцедуру выполнения сохранения файла?

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Так как я никогда не программировал для Inventor, то дальше идут только предположения. В событии OnSaveDocument есть параметр, передающийся по ссылке, типа HandlingCodeEnum. Попробуй присвоить ему значение HandlingCodeEnum.kEventCanceled.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
Я в событиии If BeforeOrAfter = EventTimingEnum.kBefore Then использовал все три доступные вариации HandlingCode = HandlingCodeEnum... - пока результат отрицательный. - какие еще есть варианты?

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
какие еще нсть варианты?
Ну тогда без использования средств Inventor API. Поменять файлу атрибут на read-only.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Я в событиии If BeforeOrAfter = EventTimingEnum.kBefore Then использовал все три доступные вариации HandlingCode = HandlingCodeEnum... - пока результат отрицательный. - какие еще есть варианты?
Кстати, а условие “Embed Interop Types” установлено в False у тебя выполняется? Иначе изменение HandlingCode ни к чему не приводит.
http://modthemachine.typepad.com/my_weblog/2012/07/set-embed-interop-types-to-false-to-avoid-problems-with-events.html
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
к сожалению в настройках по умолчанию всегда “Embed Interop Types” выставлено как False.

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Если хочешь - могу отправить этот вопрос в ADN DevHelp.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение filat 12-05-2016, 14:29:47

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

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
Нашел в чем у меня была ошибка: проверка состояния свойства в коде стаяла перед процедурой генерации этого свойсва - и код не срабатывал.
Для прерывания процесса сохранения файла достаточно в событии OnSave прописать код:
Код - vb.net [Выбрать]
  1. If BeforeOrAfter = EventTimingEnum.kBefore Then
  2.           HandlingCode = HandlingCodeEnum.kEventCanceled

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Однако интуиция у меня развита... Никогда с Inventor не работал, не написал для него ни одной строки, но правильную идею подсказал сразу.  :)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение