Author |
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 активного документа. Если код обработчика находится где-то еще (например, в трафарете), то периодически возникает ситуация с потерей нужного события. Как бы это побороть? |
|
|
mers
Russia
159 Posts |
Posted - 12/05/2006 : 18:56:22
|
хм.. интересено, даже не думал в эту строну. Спасибо :) |
|
|
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 и требуется ее переназначение (переинициализация) |
|
|
|
Topic |
|