|
EXCEL | WebBrowser | .gif
|
|||
---|---|---|---|
#18+
Hello world! Есть макрос, который запускается по клику кнопки. Выполняется он порядка 20 секунд. Пока идут вычисления, пользователю должна выводиться форма с динамическим изображением в формате GIF (песочные часы). Для этого использую WebBrowser, который динамически добавляю на форму. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Но проблема в том, что вместо заставки с крутящимися песочными часами, появляется белый фон. И только в самом конце отображается статический кадр моего изображения. Если проводить запуск через кнопку F8, то описанной выше проблемы нет. Подскажите, как это побороть? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 14:39 |
|
EXCEL | WebBrowser | .gif
|
|||
---|---|---|---|
#18+
Yagrus2, Со статическим контролом всё ок. Вам точно нужно на лету создавать web browser ? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2018, 19:53 |
|
EXCEL | WebBrowser | .gif
|
|||
---|---|---|---|
#18+
big-duke, Это потому, что ваш код показывает только форму. Попробуйте вот так Код: vbnet 1. 2. 3. 4. 5.
Сначала просто запустите. Вместо gif-изображения у вас будет белый фон. Потом, на строке с for поставьте прерывание и запустите еще раз. Отобразится форма с gif-изображением. Песочные часы будут крутиться. Если возобновить выполнение, песочные часы заморозятся. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 11:41 |
|
EXCEL | WebBrowser | .gif
|
|||
---|---|---|---|
#18+
Yagrus2Выполняется он порядка 20 секундМожет код оптимизировать, чтобы выполнялся за 2 секунды? Тогда и анимация не понадобится, Application.Cursor = xlWait достаточно будет. Yagrus2Попробуйте вот такВставьте в цикл DoEvents. Не при каждом проходе цикла, например Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 12:53 |
|
EXCEL | WebBrowser | .gif
|
|||
---|---|---|---|
#18+
Казанский, Спасибо за ваш комментарий. Получается, Gif-изображение проигрывается операционной системой. Чтобы ОС проигрывала Gif-изображение, нужно сообщить ей об этом. Но так как EXCEL работает в один поток, нужные мне события передаются в момент окончания работы скрипта. В реальной программе такого цикла нет. Поэтому решение с DoEvents мне не подойдет. Также оно сильно увеличивает время выполнения расчетов. Даже при Код: vbnet 1.
это заметно. Итого, вариант с DoEvents нам не подошел, а другого нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 17:06 |
|
EXCEL | WebBrowser | .gif
|
|||
---|---|---|---|
#18+
Yagrus2, а не пробовали вместе с DoEvents использовать frmHourglass.Rapaint ? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 18:47 |
|
EXCEL | WebBrowser | .gif
|
|||
---|---|---|---|
#18+
Yagrus2, А почему не используете Application.Cursor=xlWait ? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 19:33 |
|
|
start [/forum/topic.php?fid=61&msg=39724525&tid=2172216]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 319ms |
total: | 439ms |
0 / 0 |