|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.06.2018, 09:00 | #1 |
Форумчанин
Регистрация: 26.01.2018
Сообщений: 180
|
испльзование progressbar
Доброе утро! подскажите, как использовать progressbar, когда происходит поиск файла (в процессе поиска идет загрузка progressbar).
|
26.06.2018, 09:48 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Что такое поиск файла? Код
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
26.06.2018, 09:49 | #3 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
ты всегда знаешь сколько файлов ты УЖЕ просмотрел(-a)(можешь вести их подсчет) и соответственно можешь указать текущую позицию в ProgressBar, а вот знаешь ли ты сколько файлов всего тебе надо было бы просмотреть (можешь ли узнать это НЕ прибегая к их(файлов) реальному просмотру).
К сожалению такое знание недоступно, так что КОНЕЧНУЮ позицию в ProgressBar можно задать только эмпирически(на основе уж не знаю каких данных, но которых точно нет в комьютере, а есть только в твоей голове). И постоянно следить за тем чтобы текущая позиция не превысила конечную, т.е. корректировать конечную так чтобы все было "красиво". Т.е. реальной информации от(для) такого ProgressBar не получить, если конечно не составить заранее список файлов для поиска и использовать в ProgressBar его текущую позицию и размер(число файлов). P.S. стандартный ProgressBar использованный на "каждый чих"(каждый файл) замедлит выполнение(и без того медленное, иначе не было бы вопроса о ProgressBar) В НЕСКОЛЬКО раз.
программа — запись алгоритма на языке понятном транслятору
|
26.06.2018, 09:57 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
это несложно. но только в том случае, когда Вам заранее известно количество обрабатываемых файлов. Насколько я помню, у Вас же рекурсивный поиск по каталогам. Сколько файлов в каталоге - заранее неизвестно.
Поэтому использовать прогрессбар в данном случае не очень эффективно. Бороться с тем, что пользователь ничего не видит можно так: - просто выводить песочные часы вместо курсора, которые крутятся, пока идёт поиск (как вариант - есть панелька с бегущей полоской или вращающиеся колёсики или прочая лабудень - цель которой - отвлечь и развлечь оператора программы. или выводить на информационную панель (или в отдельном окошке) текущий каталог, текущий файл/количество обработанных файлов/каталогов. Это позволит оператору видеть, что процесс идёт, что программа не зависла. Но у этого способа есть большой недостаток - он сильно замедляет процесс (поиск будет происходить намного дольше, хотя субъективно оператору покажется, что поиск будет идти одинаково - за счёт того, что он не ждёт, а видит результаты) но, конечно, никто не мешает запустить сначала поиск по каталогам (без всяких сравнений и проверок), просто подсчитать общее количество файлов и потом уже использовать свой поиск с прогрессбаром. Но этот поиск всё равно займёт некоторое время. Так что, вряд ли это хороший вариант. http://programmersforum.ru/showpost....7&postcount=14 |
26.06.2018, 10:06 | #5 |
Форумчанин
Регистрация: 26.01.2018
Сообщений: 180
|
Serge_Bliznykov, количество файлов может постоянно меняться (удаляться/добавляться), поэтому с прогрессом Вы, наверное, правы...
|
26.06.2018, 10:30 | #6 |
Форумчанин
Регистрация: 26.01.2018
Сообщений: 180
|
а можно еще сделать к курсору типа Hint 'Ожидание ответа'?
|
26.06.2018, 10:45 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Код:
Код:
|
26.06.2018, 10:57 | #8 |
Форумчанин
Регистрация: 26.01.2018
Сообщений: 180
|
я так и сделала, хотелось бы с какой-нибудь подсказкой. но это наверно надо свой подгружать...
|
27.06.2018, 02:29 | #9 | |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,872
|
Цитата:
в статусбаре и добавляя найденные в листбокс. А Total Commander писан на нашем любимом Дельфи. |
|
27.06.2018, 10:09 | #10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
исходя из опыта.
я не буду проводить испытания, чтобы подтвердить фактами и цифрами. но как показывает практика, если даже банальный progressbar ввести, то время выполнения увеличивается. да, к термину "сильно" могут быть претензии. думаю, что речь идёт о процентах (рискну от фонаря сказать, что от 1% до 20% - в зависимости от реализации), конечно же, не в разы замедляется, если Вы об этом. Это так! Ну, строго говоря, язык тут вообще не при чём. Это замедление будет, даже если Вы на чистом С или на ассемблере напишите. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ProgressBar как Slider или Slider как ProgressBar | coNsept | Общие вопросы .NET | 5 | 08.03.2012 17:00 |
ProgressBar | ВикторСесюрити | Общие вопросы Delphi | 7 | 13.06.2011 16:24 |
ProgressBar | masterenergy | Microsoft Office Excel | 0 | 18.03.2010 14:04 |
Испльзование данных одного файла Excel в другом? | Vadim_abs | Microsoft Office Excel | 2 | 03.11.2009 08:33 |
ProgressBar | Andrei Isaev | Общие вопросы Delphi | 1 | 20.11.2008 14:59 |