Author |
Topic |
|
Robinkzn
84 Posts |
Posted - 03/23/2012 : 05:49:30
|
Через макрос вношу формулы в фигуры, потом мне нужно дождатся, результатов выполнения формул и продолжить выполнение макроса. Как сделать? |
|
9rey
Russia
30 Posts |
Posted - 03/23/2012 : 06:50:20
|
мне кажется можно попробовать DoEvents, либо если не получится, то посылать самому себе событие через Application.QueueMarkerEvent "название события" потом, когда после этого мозги у программы провернутся ловить событие и продолжать макрос |
|
|
Robinkzn
84 Posts |
Posted - 03/23/2012 : 12:22:30
|
Я в цикле создаю шейпы, сразу после внесения формулы, изменения не фиксируются, после того как нарисуется следующий шейп, эти изменения уже применены и можно их брать в оборот. На их применение нужно какое то время. |
Edited by - Robinkzn on 03/23/2012 12:23:39 |
|
|
9rey
Russia
30 Posts |
Posted - 03/23/2012 : 14:57:05
|
ну так а че, если после каждого создания шейпа вставлять DoEvents? пробовал? и вообще пока твой цикл выполняется, визио ничего не делает. тебе надо отдавать ему управление после каждого создания шейпа. иначе как ты хочешь? вообще, когда такие нестандартные запросы, скорее всего челоек просто неправильно составляет алгоритм. думаю проще перестроить свою программу так чтоб не требовалось так извращаться. а вообще повторюсь, разбирайся с QueueMarkerEvent, если хочешь более гибко взаимодействовать с визио. |
|
|
9rey
Russia
30 Posts |
Posted - 03/23/2012 : 15:00:05
|
я например делал так, чтобы например кружок двигался по экрану. делал цикл изменения его координат. после каждого изменения вставлял doevents. все работало. т.е. обновлялись и формулы в шейпе в процессе работы цикла. вот и думай как это к себе применить |
|
|
Robinkzn
84 Posts |
Posted - 03/23/2012 : 16:56:11
|
quote: пока твой цикл выполняется, визио ничего не делает.
Оказывается делает :). Вопрос в том, как это действие происходит, в моем случае оно происходит с первым шейпом, после того как я нарисую второй. В какой именно момент интересно, яно не сразу после создания первого, видимо как бы по событию до отрисовки второго. Я первый шейп, просто обрабатываю после создания второго, второй после создания третьего, работает. |
|
|
|
Topic |
|
|
|