Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Progress bar Добавлено: 16.06.06 17:32  

Автор вопроса:  ZevS | ICQ: 285235 
Задача как я догадываюсь легкорешаема, тока надо знать как :)
Значит есть совокупность неких операций (Хттп запрос и его текстовая обработка. циклов !нет!). Этот процесс занимает некоторое время (~3-6сек). Хотелось бы организовать сабж. Как заставить одновременно с этой операцией двигать прогрессбар?

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Nj



ICQ: 223663115 

Вопросов: 21
Ответов: 285
 Профиль | | #1 Добавлено: 16.06.06 19:40
DoEvents - я полагаю - для фоновых операций,
а насчет просчета времени - это сложнее...
Можно наверно так:
операторы
операторы
progbar=progbar+1
DoEvents
И так между опрерациями. Хотя без циклов это мало смысла имеет. Можно еще DoEvents и плюсование прогресса в Timer засунуть, будет не очень точно, зато наглядно - проблема только если процесс затянется и прогресс заполнится раньше нужного - но можно увеличить максвэлью...

Ответить

Номер ответа: 2
Автор ответа:
 ZevS



ICQ: 285235 

Вопросов: 2
Ответов: 3
 Профиль | | #2 Добавлено: 16.06.06 20:01
я так предполагаю, этот код разумен только только в цикле. а у меня их нет. причем вид этого прогресс бара не имеет значения, будь то стандарный компонент с таймером или компонент сторонний (мой вариант). Проблема именно в том чтобы заставить работатть их одновременно. а у меня получается:
----
операции запроса
...
код прогресса
----
сначала выполняется 1е потом 2е.

Ответить

Номер ответа: 3
Автор ответа:
 Wolf4D



Вопросов: 20
Ответов: 131
 Web-сайт: www.madnesstudio.ru
 Профиль | | #3
Добавлено: 21.06.06 14:15
Я думаю, прогрессбар в таких случаях многие запускают от балды, т.е. совершенно не ориентируясь на реальный ход процесса.
Если нужен такой прогрессбар, то вот код:


Private Sub Timer1_Timer()
Timer1.Interval = Timer1.Interval - 1
progressbar1.Value = 100 - Timer1.Interval
end sub


Комментарии: интервал таймера Timer1 необходимо поставить на 100 перед началом работы прогрессбара, значение свойства Max у ProgressBar1 должно быть равно 100.
А если процедура длится не столько времени, а меньше, то сотни везде (и в коде, и в значениях) надо заменить на необходимые значения, подобранные экспериментальным путём.
P.S.Только надо помнить, что иногда программа натурально "зависает" во время процедуры и все те 3-6 секунд она не реагирует на действия пользователя и не работает ни с какими элементами вообще. В таком случае надо сначала пропустить прогрессбар примерно до середины, а потом запустить процесс. У пользователя создастся такое впечатление, что программа на некоторое время затормозила, но не висит.
P.P.S. Или можно сделать прогрессбар с ТАКИМИ задержками, что пользователь не заметит торможения :))) (шутка юмора, всерьёз последий пункт не принимать)

Ответить

Номер ответа: 4
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #4 Добавлено: 21.06.06 16:13
Если просто нужно информировать пользователя о том, что программа занята выполнением действий, то можно заменить курсор мыши на часы...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам