Einzelnen Beitrag anzeigen

Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#10

Re: ProgressBar beim Kopieren von Dateien - Falsche Prozente

  Alt 7. Jul 2007, 09:14
Ich glaube ich habe das Problem gefunden. Es scheint als ob meine Kopierrountine einen Fehler tätigt. Ich habe probeweise alle Dateigrößen, die übertragen wurden in einer ListBox eingeschrieben. Das unfassbare war, dass ich nicht wie ich dachte 25 Dateien sondern 28 Dateien kopiert haben, zumindest virtuell. Kopiert wurden aber wirklich nur 25, aber in der Liste stehen 28 Werte. Einige Werte sind nahezu identisch und unterscheiden sich blos um ein paar Byte. Was ich damit sagen will ist, dass die folgende Routine rigendwie doppelte Werte aufnimmt.
Delphi-Quellcode:
function CopyFileProgress(TotalFileSize, TotalBytesTransferred, StreamSize, StreamBytesTransferred: LARGE_INTEGER; dwStreamNumber, dwCallbackReason, hSourceFile, hDestinationFile, lpData: DWORD): DWORD; stdcall;
begin
 Application.ProcessMessages;
 if Main.bCopyCanceled = True then
 begin
  Result := PROGRESS_CANCEL;
  Exit;
 end;
 case dwCallbackReason of
  CALLBACK_CHUNK_FINISHED:
   begin
    Progress.PBrCopy.Position := TotalBytesTransferred.QuadPart;
    Result := PROGRESS_CONTINUE;
   end;
  CALLBACK_STREAM_SWITCH:
   begin
    Progress.PBrCopyAll.Position := Progress.PBrCopyAll.Position + Progress.PBrCopy.Position;
    Progress.ListBox1.Items.Add(inttostr(Progress.PBrCopy.Position));
    Progress.PBrCopy.Max := TotalFileSize.QuadPart;
    Result := PROGRESS_CONTINUE;
   end;
 end;
end;
Wie kann das sein? Dazu ein Bild im Anhang.

[Edit]
Ich habe dazu mal ein anderen Beitrag eröffnet, da es meiner Meinung nach nicht hier her passt.
CopyFileProgress mit Fehler
[/Edit]
Miniaturansicht angehängter Grafiken
doppelter_wert_106.png  
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat