Author |
Topic |
|
krys
55 Posts |
Posted - 01/29/2007 : 16:50:21
|
Привет. У меня возникла следующая ситуация: Я открываю Новый документ и загружаю для него ряд шаблонов.Один из них открывается с флагами visOpenDocked и visOpenHidden . Проблема возникает когда я закрываю Документ или приложение: Для тестирования я использую Tool" Visio Event Monitor" включенный в SDK . Так вот здесь я вижу что после того как я закрываю приложение, сначала для всех видимых,встроеннных в документ, шаблонов вызываются поочереди События QueryCancelDocumentClose и BeforeDocumentClose, а потом для невидимого Шаблона QueryCancelDocumentClose (возращаемое значение False (don't cancel)). За тем следует QueryCancelQuit и BeforeQuit Отсюда я заключаю что шаблон остается незакрытым. Эту мысль так же подтверждает, то что когда я позже через программу удаляю шаблоны из папки где они распологались, шаблон открытый как невидимый продолжает лежать в папке.
Выходит что я должен вытаскивать соответствующий Документ из коллекции Documents и закрывать его(кстати, в какой то теме был задан вопрос как закрыть невидимый шаблон...) . Вопрос 1.й: сталкивался ли кто то с таким явлением ? Вопрос 2.й: Иногда проявляется Баг, при котором после QueryCancelQuit в Debug версии вызывается ошибка, а в Release версии Visio просто не закрывается, хотя новый документ открыть можно. Похоже на то что в QueryCancelQuit какой то обработчик событий возращает TRUE. Может ли здесь причиной являться незакрытый невидимый шаблон, может есть какие то другие идеи на этот счет? |
Edited by - krys on 01/29/2007 16:51:45 |
|
mers
Russia
159 Posts |
Posted - 01/29/2007 : 17:17:14
|
Здравствуйте. Я спрашивал каким образом можно получить ссылку на невидимый stencil? Т.е. фактически на document, открытый с атрибутом Hidden. Кстати так и не нашел способа. Может быть поможете? |
|
|
krys
55 Posts |
Posted - 01/29/2007 : 17:47:15
|
У меня получилось примерно так: Document= Application.Documents.GetItem(NameOrIndex) Document.Close |
|
|
mers
Russia
159 Posts |
Posted - 01/30/2007 : 11:05:46
|
Это все замечательно. Проблема в том что я не могу получить ссылку на коллекцию Documents, поскольку у меня нет объекта Application. Я работаю только с ActivX компонентой AxDrawingControl. Как выцепить скрытые stencil используя объект axDrawingControl? Вот в чем собственно вопрос. |
Edited by - mers on 01/30/2007 11:06:27 |
|
|
Ven
28 Posts |
Posted - 01/31/2007 : 10:33:39
|
quote: Originally posted by mers
Это все замечательно. Проблема в том что я не могу получить ссылку на коллекцию Documents, поскольку у меня нет объекта Application. Я работаю только с ActivX компонентой AxDrawingControl. Как выцепить скрытые stencil используя объект axDrawingControl? Вот в чем собственно вопрос.
Выцыплять стенсил надо так как описал krys а доступ к Application получаешь так: VisioDrawingControl.Document.Application |
|
|
mers
Russia
159 Posts |
Posted - 01/31/2007 : 15:04:24
|
спасибо, все получилось :) |
|
|
|
Topic |
|