All Forums
 Категория Visio
 Форум Вопросы и ответы
 Как дождаться выполнения операций?
Author Previous Topic Topic Next Topic  

cernd

9 Posts

Posted - 08/16/2006 :  14:31:13
Проблема следующая:

в процедуре VBA я добавляю страницу, перетаскиваю на нее ролевую дорожку, после чего произвожу определенные операции с этой дорожкой.

судя по всему, дорожка (и заголовок flowchart) добавляются в параллельном потоке, и поэтому после page.drop эта дорожка еще недоступна.

более того, событие shapeadded запускается для добавляемой дорожки уже после завершения процедуры создания страницы, что оч.плохо.

как разобраться с этой многопоточностью? можно ли какниб дождаться завершения всех операций в Visio? Sleep(сколькотомиллисекунд) не помогает...

cernd

9 Posts

Posted - 08/16/2006 :  18:12:57
в общем решение получилось очень сложное, мутное и все время ощущение что и это посыпется... но работает =))

а использовал я событие pVisio_NoEventsPending, с буферами для передачи переменных, несколькими заходами в него и т.п...

если кто чего нормального посоветует, буду рад :))
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 08/16/2006 :  19:47:35
Недавно был топик про мультипликацию и таймеры. Прочитайте, может наведет на какую мысль...
Вообще, впечатление такое, что до завершения макроса Visio не выполняет никаких других операций, не запускает потоков и т.д. Если в нужном шейпе на Drop поставлен какой-либо обработчик, то все зависнет, пока не завершится Ваш макрос. А раз висит, то и из Вашего макроса дорожка будет недоступна.
Если Вы завершите макрос (не Sleep), и через некоторое время запустите его или другой макрос, то скорее всего все будет нормально.
Go to Top of Page

cernd

9 Posts

Posted - 08/18/2006 :  12:26:07
а можно ссылку на этот топик? я не нашел
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 08/18/2006 :  22:23:23
topic.asp@TOPIC_ID=825.html
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)