Есть последовательность длительных невложенных операций, которые выполняются при запуске пользователем некой периодической операции. Стандартный прогресс бар мне не понравился и где-то за 20 минут было сделано примерно следующее:
Похоже на прогресс-бар установки 2005 SQL Server-а.
Идея простая - форма с набором методов:
- Метод принимающий, контейнер - перечень действий
- Метод изменяющий иконку у конкретного действия
- Метод, изменяющий текст у конкретного действия
Из тонкостей, разве что вызов WinApi::updateWindow(element.hWnd()); в каждом методе.
Какие я вижу преимущества по сравнению со стандартным прогрессбаром:
- Пользователь сразу видит всю последовательность шагов, которые ему предстоит "переждать"
- Рядом с каждым шагом я могу отображать приблизительную оценку времени выполнения шага. То есть, если шаг 3 выполняется быстро, еще не значит, что шаг 8 - будет выполняться так же быстро и есть смысл сходить попить кофе.
- Я сам явно устанавливаю процент выполнения и, в моем случае, делаю это явно адекватнее стандартного элемента управления.
А теперь, когда я весь такой радостный и довольный собой, хотелось бы услышать вал критики подобного решения, дабы не было после мучительно больно за содеянное.