Тема: Как перехватить событие закрытия документа
Как отследить событие закрытия документа ПЕРЕД запросом на сохранение документа.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → Delphi → Как перехватить событие закрытия документа
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как отследить событие закрытия документа ПЕРЕД запросом на сохранение документа.
procedure TForm1.AcadDocument1BeginClose(Sender: TObject); - метод компонента AcadDocument1.
Подробнее читай в форуме, либо в "САПР на базе AutoCad, как это делается", либо по ссылке http://dwg.ru/art/1
Метод AcadDocument1BeginClose(Sender: TObject); вызывается после запроса AutoCAD на сохранение чертежа! И перед тем как задать вопрос, искал и в "САПР на базе AutoCad, как это делается" и на форуме.
сие невозможно:
потому как событие "Close" проходит после "Save".
> callisto
Правильно "событие "Close" проходит после "Save", но AutoCAD перед тем как вызвать событие BeginClose вываливает сообщение "Cохранить изменения в чертеже?".
А надо, чтобы документ закрывался без этого запроса, не зависимо от того внесены изменения в чертеже или нет. Вот и хочу закрывать документ сам Close(false) перед запросом AutoCAD на сохранение изменений в чертеже.
посмотри:
Application.preferences.System.ShowWarningMessages
однако это самое оно!
> callisto
По Help-у Application.preferences.System.ShowWarningMessages это "Displays all dialog boxes that include a Don't Display This Warning Again option." Но вот запрос на сохранение документа не относится к таким окнам!
Попробуй в нужный момент сохранять документ во временный файл - тогда запрос выдаваться не будет, после этого смело закрывай свой файл и удаляй временный файл... Некрасиво но должно работать...
зы. А зачем подавлять стандартное сообщение?
> Евгений, Екатеринбург
?Попробуй в нужный момент сохранять документ во временный файл?? ? нужный момент будет наступать после любой команды, даже перемещения. На сохранение генерального плана завода потребуется в лучшем случае секунды 2-3. В общем, таким режимом работы я замучаю любого пользователя.
?А зачем подавлять стандартное сообщение?? Одной из функций программы будет просмотр участков генерального плана предприятия. Чтобы закончить работу с просмотром графики необходимо вернуться в управляющую программу и закрыть AutoCAD из нее. Если закрывать непосредственно AutoCAD, то и появляется запрос на сохранение изменений. Чертеж ReadOnly и нет возможности его сохранить, но зачем отвечать на абсолютно не нужные запросы.
Ээээ нет...
Нужный момент это когда пользователь перешел в управляющую программу и нажал на "ЗАКРЫТЬ" вот тут ты из делфей и делаешь все что надо: сохраняешь во временный файл (тут уж 2 сек. не напрягут никого, можно даже в отдельном потоке сделать), закрываешь удаляешь, а пока пользователь в акаде, пусть себе двигает как хочет...
Это эл. документооборот я так понимаю... смотри тогда в сторону DWF...
> Евгений, Екатеринбург
В том то и проблема, что я хочу, чтобы пользователю не надо было переходить в управляющую программу, а можно было закрывать непосредственно AutoCAD и не видеть злополучного запроса на сохранение.
но если в чертеж не вносятся изменения - никаких запросов на сохранение не выдается.
ведь так ?
> callisto
Нет, не так. Для AutoCAD команды Pan, Zoom и т.п. - это уже изменение чертежа (и повод задать запрос).
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → Delphi → Как перехватить событие закрытия документа
Форум работает на PunBB, при поддержке Informer Technologies, Inc