Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Проблема создания индикатора процесса  [new]
Страдалецъ
Member

Откуда: Мурманск
Сообщений: 1381
У меня индикатор процесса обычный шэйп, который может иметь 4 цвета (fpOnline, fpIdle, fpBusy, fpOffline). Проблема в том, что скорость переключения между цветами составляет 15-40 мс, что естественно слишком быстро для восприятия. Первое и последнее состояние разовые, там еще как-то можно замедлить, что не скажется на скорость исполнения задачи, но вот оставшиеся два состояния замедлять нельзя, т.к. замедлим и исполнение задачи. И вот что такое придумать что-бы скорость смены цветов стала нормальной для восприятия и в то-же самое время она должна быть реалистичной для процесса.
4 сен 19, 16:35    [21963656]     Ответить | Цитировать Сообщить модератору
 Re: Проблема создания индикатора процесса  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1364
Страдалецъ,

попробуй обновлять цвет по таймеру, раз в 100 мс, 250, 300, 500
4 сен 19, 16:47    [21963674]     Ответить | Цитировать Сообщить модератору
 Re: Проблема создания индикатора процесса  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11152
В чем смысл индикатора, который после отображения показывает невалидное состояние? Пользователю интересен такой индикатор?
4 сен 19, 16:47    [21963676]     Ответить | Цитировать Сообщить модератору
 Re: Проблема создания индикатора процесса  [new]
alekcvp
Member

Откуда:
Сообщений: 1485
Страдалецъ,

Если процесс завершается так быстро, что не успевает глаз заметить - то зачем вам индикатор?..
4 сен 19, 16:52    [21963683]     Ответить | Цитировать Сообщить модератору
 Re: Проблема создания индикатора процесса  [new]
zinpub
Member

Откуда:
Сообщений: 382
Страдалецъ,

Показывай граничные состояния, а в процессе просто анимашку каку-нибудь.
4 сен 19, 16:55    [21963690]     Ответить | Цитировать Сообщить модератору
 Re: Проблема создания индикатора процесса  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1641
как вариант
чтобы не моргать как елка, обновлять раз в секунду, если с момента последнего перехода в idle прошло менее сек, то показывать busy
4 сен 19, 17:04    [21963703]     Ответить | Цитировать Сообщить модератору
 Re: Проблема создания индикатора процесса  [new]
Страдалецъ
Member

Откуда: Мурманск
Сообщений: 1381
автор
Если процесс завершается так быстро, что не успевает глаз заметить - то зачем вам индикатор?..
быстрая скорость переключения между состояниями, а вот сами процессы могут протекать часами. Да и просто хочется реализовать такое :)
4 сен 19, 17:19    [21963725]     Ответить | Цитировать Сообщить модератору
 Re: Проблема создания индикатора процесса  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30273

04.09.2019 17:19, Страдалецъ пишет:
> Да и просто хочется реализовать такое

я хочу чтоб был на Земле коммунизм

Posted via ActualForum NNTP Server 1.5

4 сен 19, 17:24    [21963731]     Ответить | Цитировать Сообщить модератору
 Re: Проблема создания индикатора процесса  [new]
rgreat
Member

Откуда:
Сообщений: 5212
Страдалецъ,

Сделай полосу прогресса, где состояния показывай вертикальными полосками по времени.

Типа этого:

К сообщению приложен файл. Размер - 4Kb
4 сен 19, 17:28    [21963739]     Ответить | Цитировать Сообщить модератору
 Re: Проблема создания индикатора процесса  [new]
Страдалецъ
Member

Откуда: Мурманск
Сообщений: 1381
автор
если с момента последнего перехода в idle прошло менее сек, то показывать busy

ну вот пробуем это реализовать:
Время: 00:00:00:0000 fpIdle
Время: 00:00:00:0015 fpBusy
Время: 00:00:00:0030 fpIdle
...
Время: 00:00:01:0000 fpIdle
И какое состояние было в течении секунды ожидания? 50/50 и то и другое. Можно в принципе считать, что если в течении секунды хотя-бы раз произошло изменение на fpBusy, то считать что он был постоянно fpBusy, но тогда задержка отображения будет не в реальном времени, а с запаздыванием на секунду.
4 сен 19, 17:28    [21963741]     Ответить | Цитировать Сообщить модератору
 Re: Проблема создания индикатора процесса  [new]
Страдалецъ
Member

Откуда: Мурманск
Сообщений: 1381
rgreat идея здравая, но у меня одновременно может и до 60 таких процессов образоваться, в зависимости от количества логических процессоров на машине - очень громоздко выйдет.
4 сен 19, 17:33    [21963746]     Ответить | Цитировать Сообщить модератору
 Re: Проблема создания индикатора процесса  [new]
rgreat
Member

Откуда:
Сообщений: 5212
60 процессов по 10 пикселей - 600 пикселей.

Хотя нафига тебе их видеть все одновременно - вопрос.
4 сен 19, 17:34    [21963748]     Ответить | Цитировать Сообщить модератору
 Re: Проблема создания индикатора процесса  [new]
Страдалецъ
Member

Откуда: Мурманск
Сообщений: 1381
Дегтярев Евгений и все-же что-то в этом есть, вроде должно получится, попробую.
4 сен 19, 17:36    [21963751]     Ответить | Цитировать Сообщить модератору
 Re: Проблема создания индикатора процесса  [new]
Страдалецъ
Member

Откуда: Мурманск
Сообщений: 1381
Все сделал, работает как надо, но проблема оказалась несколько в другом, я когда перерисовку в паинт переносил, для шэйпа вписал ручками цет fpOffline и забыл напрочь об этом, а явно это косяк стал видим, когда я темы стал применять для готового приложения. Но все-же нет худа без добра, введение таймаута оказалось к месту. Сейчас я задумался о плавном переходе цветов (это ни на что не влияет, но просто хочется попробовать, может где решение еще пригодится)
6 сен 19, 00:15    [21965011]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить