Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.17;
Скачать: CL | DM;

Вниз

копирование файлов с 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
6-56798
ORMADA
2003-09-19 08:37
2003.11.17
Перекодировка Koi8R в Win


6-56787
StanislavB
2003-09-19 08:31
2003.11.17
Возврат из ActivX в сценарий


4-56960
Maxim Pshevlotsky
2003-09-20 11:47
2003.11.17
Где найти информацию по function UpdateResource?


1-56599
GIGorON
2003-11-06 08:43
2003.11.17
Передача параметра


3-56438
Bless
2003-10-24 16:20
2003.11.17
Какое событие при переводе ячейки грида в режим редактирования?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский