mir fiel grad was auf: mein programm was das verwendet soll ne ganze liste von dateien kopieren...hab zu testzwecken mehrere klein dateien und ne große 700mb datei in die liste gesteckt. wo ich die nun kopiert hab ging der progress viel zu schnell für die 700mb-datei...als ich jetz grad nur die 700er so kopiert hab hats gestimmt...das problem muss also woanders liegen..nämle in meiner schleife für die liste:
Delphi-Quellcode:
for x:=0
to copylist2.Items.Count-1
do
begin
s:=ExcludeTrailingPathDelimiter(Edit17.text+copylist2.Items[x].SubItems[1]);
s:=ExcludeTrailingPathDelimiter(ExtractFilePath(s));
//Verzeichnisse erstellen
if not DirectoryExists(s)
then
begin
log.Items.Add.text:=('
Erstelle Ordner: '+s);
if not ForceDirectories(s)
then
raise Exception.Create('
Verzeichnis kann nicht erstellt werden: '+ s);
end;
log.Items.Add.text:=(Edit17.text+copylist2.Items[x].SubItems[1]);
Application.ProcessMessages;
//Copy-Thread einleiten
New(Params);
Params.Source := copylist2.Items[x].SubItems[0]+copylist2.Items[x].SubItems[1];
Params.Dest := ExcludeTrailingPathDelimiter(Edit17.text)+copylist2.Items[x].SubItems[1];
Params.Handle :=
Handle;
CloseHandle(BeginThread(
nil, 0, @CopyExThread, Params, 0, ThreadID));
copyProgressBar2.Position:=copyProgressBar2.Position+1;
end;
end;
...irgendwie wird da das copyProgressBar2.Position:=copyProgressBar2.Positi on+1 schon aufgerufen obwohl der thread noch gar ni fertig is...wie kann ich das jetz verhindern ???? reicht es da dieses FlushFile-Ding aufzurufen ???