Тема: Как перехватить событие закрытия документа

Как отследить событие закрытия документа ПЕРЕД запросом на сохранение документа.

Re: Как перехватить событие закрытия документа

procedure TForm1.AcadDocument1BeginClose(Sender: TObject); - метод компонента AcadDocument1.
Подробнее читай в форуме, либо в "САПР на базе AutoCad, как это делается", либо по ссылке http://dwg.ru/art/1

Re: Как перехватить событие закрытия документа

Метод AcadDocument1BeginClose(Sender: TObject); вызывается после запроса AutoCAD на сохранение чертежа! И перед тем как задать вопрос, искал и в "САПР на базе AutoCad, как это делается" и на форуме.

Re: Как перехватить событие закрытия документа

сие невозможно:
потому как событие "Close" проходит после "Save".

Re: Как перехватить событие закрытия документа

> callisto
Правильно "событие "Close" проходит после "Save", но AutoCAD перед тем как вызвать событие BeginClose вываливает сообщение "Cохранить изменения в чертеже?".
А надо, чтобы документ закрывался без этого запроса, не зависимо от того внесены изменения в чертеже или нет. Вот и хочу закрывать документ сам Close(false) перед запросом AutoCAD на сохранение изменений в чертеже.

Re: Как перехватить событие закрытия документа

посмотри:
Application.preferences.System.ShowWarningMessages
однако это самое оно!

Re: Как перехватить событие закрытия документа

> callisto
По Help-у Application.preferences.System.ShowWarningMessages это "Displays all dialog boxes that include a Don't Display This Warning Again option." Но вот запрос на сохранение документа не относится к таким окнам!

Re: Как перехватить событие закрытия документа

Попробуй в нужный момент сохранять документ во временный файл - тогда запрос выдаваться не будет, после этого смело закрывай свой файл и удаляй временный файл... Некрасиво но должно работать...
зы. А зачем подавлять стандартное сообщение?

Re: Как перехватить событие закрытия документа

> Евгений, Екатеринбург
?Попробуй в нужный момент сохранять документ во временный файл?? ? нужный момент будет наступать после любой команды, даже перемещения. На сохранение генерального плана завода потребуется в лучшем случае секунды 2-3. В общем, таким режимом работы я замучаю любого пользователя.
?А зачем подавлять стандартное сообщение?? Одной из функций программы будет просмотр участков генерального плана предприятия. Чтобы закончить работу с просмотром графики необходимо вернуться в управляющую программу и закрыть AutoCAD из нее. Если закрывать непосредственно AutoCAD, то и появляется запрос на сохранение изменений. Чертеж ReadOnly и нет возможности его сохранить, но зачем отвечать на абсолютно не нужные запросы.

Re: Как перехватить событие закрытия документа

Ээээ нет...
Нужный момент это когда пользователь перешел в управляющую программу и нажал на "ЗАКРЫТЬ" вот тут ты из делфей и делаешь все что надо: сохраняешь во временный файл (тут уж 2 сек. не напрягут никого, можно даже в отдельном потоке сделать), закрываешь удаляешь, а пока пользователь в акаде, пусть себе двигает как хочет...
Это эл. документооборот я так понимаю... смотри тогда в сторону DWF...

Re: Как перехватить событие закрытия документа

> Евгений, Екатеринбург
В том то и проблема, что я хочу, чтобы пользователю не надо было переходить в управляющую программу, а можно было закрывать непосредственно AutoCAD и не видеть злополучного запроса на сохранение.

Re: Как перехватить событие закрытия документа

но если в чертеж не вносятся изменения - никаких запросов на сохранение не выдается.
ведь так ?

Re: Как перехватить событие закрытия документа

> callisto
Нет, не так. Для AutoCAD команды Pan, Zoom и т.п. - это уже изменение чертежа (и повод задать запрос).