Показать сообщение отдельно
Старый 09.08.2007, 13:25   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Свой progressBar
Есть последовательность длительных невложенных операций, которые выполняются при запуске пользователем некой периодической операции. Стандартный прогресс бар мне не понравился и где-то за 20 минут было сделано примерно следующее:



Похоже на прогресс-бар установки 2005 SQL Server-а.

Идея простая - форма с набором методов:
  • Метод принимающий, контейнер - перечень действий
  • Метод изменяющий иконку у конкретного действия
  • Метод, изменяющий текст у конкретного действия

Из тонкостей, разве что вызов WinApi::updateWindow(element.hWnd()); в каждом методе.

Какие я вижу преимущества по сравнению со стандартным прогрессбаром:
  • Пользователь сразу видит всю последовательность шагов, которые ему предстоит "переждать"
  • Рядом с каждым шагом я могу отображать приблизительную оценку времени выполнения шага. То есть, если шаг 3 выполняется быстро, еще не значит, что шаг 8 - будет выполняться так же быстро и есть смысл сходить попить кофе.
  • Я сам явно устанавливаю процент выполнения и, в моем случае, делаю это явно адекватнее стандартного элемента управления.

А теперь, когда я весь такой радостный и довольный собой, хотелось бы услышать вал критики подобного решения, дабы не было после мучительно больно за содеянное.
Изображения
 
За это сообщение автора поблагодарили: TasmanianDevil (2).