Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2012, 13:27   #1
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию Поиск файлов + ProgressBar

Как реализовать индикатор прогресса во время поиска файлов? Есть идеи?

Код:
procedure AddFilesFromFolder(Folder: string);
 var
   Rec: TSearchRec;
 begin
   Folder := IncludeTrailingBackslash(Folder);
   if (FindFirst(Folder + "*.*", faAnyFile, Rec) = 0) then
   begin
     repeat
       if ((Rec.Attr and faDirectory) = faDirectory) then
       begin
         if (Rec.Name <> "..") and (Rec.Name <> ".") then
           AddFilesFromFolder(Folder + Rec.Name + "\");
       end else
       begin
         DirList.Items.Add(Folder + Rec.Name);
         Application.ProcessMessages;
       end;
     until (FindNext(Rec) <> 0);
     FindClose(Rec);
   end;
 end;
Lardes вне форума Ответить с цитированием
Старый 16.09.2012, 17:24   #2
Vova777
Уважаемый
Форумчанин
 
Аватар для Vova777
 
Регистрация: 04.07.2010
Сообщений: 318
По умолчанию Один из вариантов.

Может нужно попробовать считать циклы:
Код:
repeat
...
until
Если вам заранее не известно максимальное число циклов, то может сначала попробовать это вычислить (естественно программно ) и уже потом производить счет.
даешь высокое напряжение
Vova777 вне форума Ответить с цитированием
Старый 16.09.2012, 17:35   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Зачем? Бесконечный прогрессбар.
Человек_Борща вне форума Ответить с цитированием
Старый 16.09.2012, 17:36   #4
Vova777
Уважаемый
Форумчанин
 
Аватар для Vova777
 
Регистрация: 04.07.2010
Сообщений: 318
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Зачем? Бесконечный прогрессбар.
Бесконечный прогрессбар + считать циклы. Оптимальный вариант.
даешь высокое напряжение
Vova777 вне форума Ответить с цитированием
Старый 18.09.2012, 16:07   #5
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию

Цитата:
Сообщение от Vova777 Посмотреть сообщение
Если вам заранее не известно максимальное число циклов, то может сначала попробовать это вычислить (естественно программно ) и уже потом производить счет.
... можно организовать в два потока: 1-ый поток - подсчитывает, 2-ой - поиск + индикатор отображения. ИМХО, практическая польза от этого минимальна.

Есть другие пути, не прибегая к этому методу?
Lardes вне форума Ответить с цитированием
Старый 18.09.2012, 16:23   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Читайте выше.
Пример можно при запуске xP винды увидеть.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка файлов + ProgressBar record222 Общие вопросы Delphi 2 25.04.2010 11:07
Загрузка файлов + ProgressBar record222 Общие вопросы Delphi 4 18.04.2010 18:27
Копирование файлов(каталог-а) с ProgressBar KurtWagner Общие вопросы Delphi 9 23.03.2009 03:22
Копирование нескольких файлов + ProgressBar AngelOfDeath Общие вопросы Delphi 4 28.05.2008 14:57