Author |
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, с буферами для передачи переменных, несколькими заходами в него и т.п...
если кто чего нормального посоветует, буду рад :)) |
|
|
Tumanov
Russia
1198 Posts |
Posted - 08/16/2006 : 19:47:35
|
Недавно был топик про мультипликацию и таймеры. Прочитайте, может наведет на какую мысль... Вообще, впечатление такое, что до завершения макроса Visio не выполняет никаких других операций, не запускает потоков и т.д. Если в нужном шейпе на Drop поставлен какой-либо обработчик, то все зависнет, пока не завершится Ваш макрос. А раз висит, то и из Вашего макроса дорожка будет недоступна. Если Вы завершите макрос (не Sleep), и через некоторое время запустите его или другой макрос, то скорее всего все будет нормально. |
|
|
cernd
9 Posts |
Posted - 08/18/2006 : 12:26:07
|
а можно ссылку на этот топик? я не нашел |
|
|
Tumanov
Russia
1198 Posts |
|
|
Topic |
|
|
|