Einzelnen Beitrag anzeigen

WizoHulk

Registriert seit: 25. Jun 2010
198 Beiträge
 
Delphi 5 Enterprise
 
#1

Daten Kopieren mit Thread?

  Alt 27. Nov 2010, 07:25
Hallo DP's

ich hab ein kleines Problem, und zwar möchte ich Dateien kopieren. was soweit auch ganz gut mit den Source klappt.
Delphi-Quellcode:
class function TMyDaten.CopyDirectory(AFromFolder, AToFolder: string): boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  fos.wFunc := FO_COPY;
  fos.fFlags := FOF_SIMPLEPROGRESS OR FOF_NOCONFIRMATION;
  fos.pFrom := PChar(AFromFolder + #0);
  fos.pTo := PChar(AToFolder);
  Result := (0 = ShFileOperation(fos));
end;
Nun habe ich aber festgestellt, das wenn größere Datenmengen Transportiert, das er nicht weiterkomperliert bis die Datei oder Verzeichnis erfolgreich beendet wurde.
Meine Idee war die Funktion in einem Thread zu haun und dann nur die Parameter zu übergeben.
Delphi-Quellcode:
LThread := MyThread.Create(true);
      LThread.GPfadFrom := LPfadFrom;
      LThread.GFadTo := LPfadTo;
      LThread.Suspended := False; //thread wird gestartet!!
      Application.ProcessMessages;
aber da ist wieder das Problem das er erst nach meiner For - Schleife mit den kopieren anfängt.

hat jemand eine Idee wie man das am einfachsten lösen kann?
Mein ziel ist, das er währen meiner Fußgesteuerten schleife...
Delphi-Quellcode:
repeat
        FileCountTo := TMyDaten.CountFiles(LPfadTo); //ermittelt OrdnerZahl
        Progressbar1.Position := FileCountTo;
        Application.ProcessMessages;
      until FileCountTo = FFileCountFrom;
...Die Dateien kopiert..

danke schonmal im Vorraus.
  Mit Zitat antworten Zitat