Форум: "Основная";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];
Внизкопирование файлов с Progress Bar Найти похожие ветки
← →
Mistic (2003-11-06 13:37) [0]Простите за ламерский вопрос, надо копировать файлы с отображением индикатора копирования в ProgressBar на Form. Если можно киньте работающую функцию,если нет объясните как сделать.
← →
malamba (2003-11-06 13:40) [1]НЕ знаю, как с копированием, а вот у меня прога заполняет Вордовсий файл всякой требухой.
В код я всунул
PanelForm.Visible:=True;
ProgressBarAct.Visible:=True;
PanelForm.BringToFront;
PanelForm.Update;
ProgressBarAct.StepIt;
юююю
ProgressBarAct.StepIt;
юююю
ProgressBarAct.StepIt;
юююю
ProgressBarAct.Position:=ProgressBarAct.Max;
ююю - это выполняемый код
← →
[lamer]Barmaglot (2003-11-06 13:52) [2]SHFILEOPSTRUCT?
← →
Gray Angel (2003-11-06 13:57) [3]Собственная функция копированя (например посредством потоков), засунутая в отдельный процесс, в котором есть ссылка на объект типа TProgressBar.
У меня по крайней мере так. Если кто знае стандартные средства, заделитесь опытом плизз.
← →
Stas (2003-11-06 14:01) [4]Есть API функция копирования файлов, которая отображает окно с ProgressBar, так как в Explorer.
← →
gek (2003-11-06 14:01) [5]http://www.swissdelphicenter.ch/en/showcode.php?id=330
← →
Романов Р.В. (2003-11-06 14:02) [6]F1 - CopyFileEx
LPPROGRESS_ROUTINE lpProgressRoutine, // pointer to the callback function
SHFileOperation
← →
serge (2003-11-06 14:03) [7]Load from WWW.ИСХОДНИКИ.РУ
Копирование файлов со стандартным диалоговым окошком.
Компилятор: Delphi
Следующий пример демонстрирует использование функции SHFileOperation для копирования нескольких файлов и отображения стандартного системного диалога копирования файлов. Следующие флаги так же можно использовать для удаления, перемещения и переименования группы файлов.
TO_COPY
FO_DELETE
FO_MOVE
FO_RENAME
Замечание: Буфер, который содержит имена файлов для копирования должен заканчиваться двумя нулями;
Пример:
uses ShellAPI;
procedure TForm1.Button1Click(Sender: TObject);
var
Fo : TSHFileOpStruct;
buffer : array[0..4096] of char;
p : pchar;
begin
FillChar(Buffer, sizeof(Buffer), #0);
p := @buffer;
p := StrECopy(p, "C:\DownLoad\1.ZIP") + 1;
p := StrECopy(p, "C:\DownLoad\2.ZIP") + 1;
p := StrECopy(p, "C:\DownLoad\3.ZIP") + 1;
StrECopy(p, "C:\DownLoad\4.ZIP");
FillChar(Fo, sizeof(Fo), #0);
Fo.Wnd := Handle;
Fo.wFunc := FO_COPY;
Fo.pFrom := @Buffer;
Fo.pTo := "D:\";
Fo.fFlags := 0;
if ((SHFileOperation(Fo) <> 0) or
(Fo.fAnyOperationsAborted <> false)) then
ShowMessage("Cancelled")
end;
← →
Gray Angel (2003-11-06 14:05) [8]To Stas: А название API функции можно узнать плз?
← →
Stas (2003-11-06 14:10) [9]С помощью этой процедуры можно копировать файлы и папки она построена на API, при копировании ввыодится окно с индикатором.
Procedure CopyFolder (OutDir,InDir:String;Handle:HWND);
var
OpStruc: TSHFileOpStruct;
frombuf, tobuf: Array [0..128] of Char;
Begin
FillChar( frombuf, Sizeof(frombuf), 0 );
FillChar( tobuf, Sizeof(tobuf), 0 );
StrPCopy( frombuf, OutDir );
StrPCopy( tobuf, Indir );
With OpStruc DO Begin
Wnd:= Handle;
wFunc:= FO_COPY;
pFrom:= @frombuf;
pTo:=@tobuf;
fFlags:= FOF_NOCONFIRMATION or FOF_NOCONFIRMMKDIR;
fAnyOperationsAborted:=false;
hNameMappings:= Nil;
lpszProgressTitle:= Nil;
end;
ShFileOperation( OpStruc );
end;
← →
Mistic (2003-11-06 14:30) [10]Мне нужно чтобы ProgressBar выходил не в отдельном окошке, а отображался на моей форме. с ShFileOperation и так все ясно
← →
Stas (2003-11-06 14:34) [11]А че там сложного ?
← →
Stant (2003-11-06 14:39) [12]Напиши свою функцию CopyFile, копируй блоками по 64kb и после копирования каждого блока обновляй инфу в ProgressBar и вызывай Application.ProcessMessages
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.017 c