ok danke. Das hatte ich anders in Erinnerung.
Ich will es gerade testen, habe aber noch ein Problem mit dem Aufruf von CopyFileEx.
Der Beispielcode ist mir zugegebener Maßen zu umfangreich. Ich versuche ein Minimalbeispiel umzusetzen:
Code:
function TJobThread.SyncProgress2(_TotalFileSize, _TotalBytesTransferred, _StreamSize, _StreamBytesTransferred: LARGE_INTEGER; _StreamNumber, _CallbackReason: LongWord; _SourceFile, _DestinationFile: THandle; _Data: Pointer): LongWord;
begin
// mach irgendwas..
end;
procedure TJobThread.Execute;
var
src1,tgt:string;
begin
src := 'c:\temp\datei1.img';
tgt := 'c:\temp\datei2.img';
Windows.CopyFileEx(PChar(src), PChar(tgt), SyncProgress2, Redir, @Redir.FCancelFlag, Flags); // Fehler beim Compilieren: E2035 Nicht genügend wirkliche Parameter
Windows.CopyFileEx(PChar(src), PChar(tgt), @SyncProgress2, Redir, @Redir.FCancelFlag, Flags); // Fehler beim Compilieren: E2036 Variable erforderlich
end;
Wie kann ich die Funktion SyncProgress2 übergeben?
Falls noch jemand eine Idee hat warum closfile bzw. Stream.Free so lange dauert, bin ich aber auch da noch für jeden Tip dankbar.