![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Помогите ламеру, скажите, как сделать так, что бы прогресс бар отображал ход копирования папок с файлами (включая подкаталоги).
Я вот попоробовал добавить ПрогрессБар к исходнику "Copy Files" и не смог. Вот его код: Код:
procedure TForm1.Button1Click(Sender: TObject); Label M; var OpStruc:TSHFileOpStruct; frombuf,tobuf:array[0..128] of Char; Dir1,Dir2,s:string; begin SelectDirectory('Просмотр каталога',Dir1,Dir2); if Dir2='' then goto M; FillChar(frombuf, Sizeof(frombuf), 0); FillChar(tobuf, Sizeof(tobuf), 0); // s:=''; StrPCopy(frombuf, 'd:\games'); StrPCopy(tobuf, Dir2); with OpStruc do begin Wnd:=Handle; wFunc:=FO_COPY; pFrom:=@frombuf; pTo:=@tobuf; fFlags:=FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION; fAnyOperationsAborted:=False; hNameMappings:=nil; lpszProgressTitle:=nil; end; ShFileOperation(OpStruc); M: end; Да, и если нетрудно, скажите заодно, как узнать сколько файлов скопировано, сколько осталось и как получить все это счастье в текстовом формате, и можно ли к Код:
fFlags:=FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION; Заранее спасибо. |
#2
|
||||
|
||||
![]() По поводу копирования папок. Для корректного отображения всего этого дела, надо перед начало копирования подсчитать сколько файлов будет скопировано и самому копировать каждый файл. Для этого юзаем функции FindFirst и FindNext. Почитайте хелп к Делфи, там все хорошо написано.
Не профи, но и не чайник ![]() ![]() |