Сообщество программистов Autodesk в СНГ

ADN Club => Inventor API => Тема начата: filat от 12-05-2016, 09:54:04

Название: Прерывание процедуры сохранения файла
Отправлено: filat от 12-05-2016, 09:54:04
Есть ли возможность в процессе отработки события OnSaveDocument прервать прцедуру выполнения сохранения файла?
Название: Re: Прерывание процедуры сохранения файла
Отправлено: Александр Ривилис от 12-05-2016, 11:28:52
Так как я никогда не программировал для Inventor, то дальше идут только предположения. В событии OnSaveDocument есть параметр, передающийся по ссылке, типа HandlingCodeEnum. Попробуй присвоить ему значение HandlingCodeEnum.kEventCanceled.
Название: Re: Прерывание процедуры сохранения файла
Отправлено: filat от 12-05-2016, 11:44:52
Я в событиии If BeforeOrAfter = EventTimingEnum.kBefore Then использовал все три доступные вариации HandlingCode = HandlingCodeEnum... - пока результат отрицательный. - какие еще есть варианты?
Название: Re: Прерывание процедуры сохранения файла
Отправлено: Александр Ривилис от 12-05-2016, 11:47:17
какие еще нсть варианты?
Ну тогда без использования средств Inventor API. Поменять файлу атрибут на read-only.
Название: Re: Прерывание процедуры сохранения файла
Отправлено: Александр Ривилис от 12-05-2016, 11:58:03
Я в событиии 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
Название: Re: Прерывание процедуры сохранения файла
Отправлено: filat от 12-05-2016, 13:22:52
к сожалению в настройках по умолчанию всегда “Embed Interop Types” выставлено как False.
Название: Re: Прерывание процедуры сохранения файла
Отправлено: Александр Ривилис от 12-05-2016, 13:27:43
Если хочешь - могу отправить этот вопрос в ADN DevHelp.
Название: Re: Прерывание процедуры сохранения файла
Отправлено: filat от 12-05-2016, 14:29:41
Нашел в чем у меня была ошибка: проверка состояния свойства в коде стаяла перед процедурой генерации этого свойсва - и код не срабатывал.
Для прерывания процесса сохранения файла достаточно в событии OnSave прописать код:
Код - vb.net [Выбрать]
  1. If BeforeOrAfter = EventTimingEnum.kBefore Then
  2.           HandlingCode = HandlingCodeEnum.kEventCanceled
Название: Re: Прерывание процедуры сохранения файла
Отправлено: Александр Ривилис от 12-05-2016, 14:31:51
Однако интуиция у меня развита... Никогда с Inventor не работал, не написал для него ни одной строки, но правильную идею подсказал сразу.  :)