Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
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&gotonew=1&tid=2172216]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 276ms |
| total: | 395ms |

| 0 / 0 |
