Тема: Отслеживание событий открытия/закрытия чертежей из Delphi

Здрасте!!!
Можно-ли отследить события по откр./закр. чертежей (документов)? Пока, единственное, что смог придумать, это по таймеру обращатся через COM к акаду и смотреть, какие документы открыты, и какой из них активный.
В принципе, работает, но сильно грузит CPU, причем, не моим приложением, а акадом. Есть ли у кого более умные варианты?
Прилагаю свой код обработчика таймера (Interval=500):
List использую исключительно в целях отладки...

// подключаемся к акаду
try
 AcadAppl:=GetActiveOLEObject('AutoCAD.Application');
except
 Edit1.Text:='Acad not running...';
 Exit
end;
// проверяем активный документ
try
 AcadDoc:=AcadAppl.ActiveDocument;
 Edit1.Text:=AcadDoc.Name;
except
 Edit1.Text:='No open drawing...';
 Exit
end;
// находим список всех открытых документов
List.Clear;
try
 Count:=AcadAppl.Documents.Count;
 for i:=0 to Count-1
 do begin
   List.Items.Add(AcadAppl.Documents.Item(i).Name);
 end;
except end;

Спасибо!!

Re: Отслеживание событий открытия/закрытия чертежей из Delphi

если импортировать библиотеку типов, тогда будет проще:
TAcadApplication - событие OnBeginOpen() или лучше OnEndOpen();
TAcadDocument - событие OnBeginClose;
при открытии будет нечто следующее:
1. при открытии чертежа срабатывает AcadApplication.OnEndOpen()
2. инициализируем новый объект AcadDocument для только что открытого дока и связываем его обработчик OnBeginClose().
а при закрытии чертежа сработает соответствующий обработчик OnBeginClose(), при этом после обработки действий связанных с этим чертежом надо не забыть уничтожить связанный с ним объект AcadDocument.
вот так в кратце.  :)