All Forums
 Категория Visio
 Форум Вопросы и ответы
 ShapeAdded не работает
Author Previous Topic Topic Next Topic  

mers

Russia
159 Posts

Posted - 12/05/2006 :  13:26:06
Здравствуйте.
Ситуация следующая. В созданном приложении с использованием компоненты axDrawingControl к событию axDrawingControl.ShapeAdded "прикручен" обработчик этого события - функция. Проблема в том что при определенных условиях событие почему-то не срабатывает... совсем, т.е. кидаю шейп на страницу, а событие не происходит и соответсвенно не обрабатывается. Думал сначала обработчик отваливается, проверил - все нормально.. Может оно как-то отключается?

Вообщем даже мыслей куда копать нет :( Может кто сталкивался?

Edited by - mers on 12/05/2006 13:26:58

zhuravsky

Russia
115 Posts

Posted - 12/05/2006 :  16:51:10
Тоже бьюсь над похожей проблемой. По-моему, причина невозникновения события - то, что обработчик описан не в том месте, т.е. надежно срабатывает только то, что описано в секции ThisDocument активного документа. Если код обработчика находится где-то еще (например, в трафарете), то периодически возникает ситуация с потерей нужного события.
Как бы это побороть?
Go to Top of Page

mers

Russia
159 Posts

Posted - 12/05/2006 :  18:56:22
хм.. интересено, даже не думал в эту строну. Спасибо :)
Go to Top of Page

zhuravsky

Russia
115 Posts

Posted - 12/06/2006 :  08:57:33
Немного новой информации.
У меня сделано так:
Dim WithEvents VisApp As Visio.Application

Private Sub Document_DocumentOpened(ByVal doc As IVDocument)
Set VisApp = Application
End Sub

Private Sub VisApp_BeforeShapeDelete(ByVal Shape As IVShape)
...
End Sub

Это код размещен в секции ThisDocument файла шаблона (VSS)
После открытия файла, использующего это шаблон все работает правильно (VisApp_BeforeShapeDelete вызывается) до тех пор пока я что-нибудь не изменю в редакторе VBA. После редактирования кода события перестают работать. Скорее всего переменная VisApp теряет адрес объекта Application и требуется ее переназначение (переинициализация)
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)