Danke dir erst einmal. Ich habe jetzt versucht den Code bei mir einzubauen, dabei ist mir aufgefallen, dass da ein kleiner Fehler drinn ist:
Delphi-Quellcode:
ProgressBar1.Max := (Msg.LParam) shl 32) + Msg.WParam;
// ich glaube so sollte es sein oder?
ProgressBar1.Max := (Int64(Msg.LParam) shl 32) + Msg.WParam;
Nun gut. Als ich das ausprobiert habe, kam sofort meine Meldung, dass alle Dateien übertragen wurden. Diese Meldung soll aber normaler Weise erst nach am Ende kommen. Auch die ProgressBars waren nicht zu sehen. Die Dateien wurden also im HiIntergrund kopiert.
Deshalb habe ich an meinen alten Code weiter versucht das Problem zu lösen. Dabei habe ich dies mit Erfolg versucht:
Delphi-Quellcode:
CALLBACK_CHUNK_FINISHED:
begin
Progress.PBrCopy.Position := TotalBytesTransferred.QuadPart;
if Progress.PBrCopy.Position = Progress.PBrCopy.Max then
begin
inc(main.test);
Main.Caption := inttostr(main.test);
Progress.PBrCopy.Max := Trunc(0.4 + Progress.PBrCopy.Max * 100 / Main.FullSize);
Progress.PBrCopyAll.Position := Progress.PBrCopyAll.Position + Progress.PBrCopy.Max;
end;
Result := PROGRESS_CONTINUE;
end;
Nun stimmt die übertragene Anzahl von Dateien. Jetzt stellt sich nur noch die Frage, ob ich das hier lassen kann.
Gruß
Mazel