Einzelnen Beitrag anzeigen

Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#1

Form hängt sich bei der Schleife auf

  Alt 13. Feb 2013, 12:04
Delphi-Version: XE2
Meine Form gibt keine Rückmeldung mehr, auch nicht die Progressbar erst wenn die Schleife beendet ist geht sie mit einem Ruck voll.

Hier die prozedur:
Delphi-Quellcode:
// 1 MB = 1048576 Byte
procedure TForm2.BumpExe(sPfad: string);
var i: integer;
    buffer : TBytes;
    dataByte: Byte;
begin
  FileStream := (TFileStream.Create(sPfad, fmOpenWrite,fmShareDenyNone));
  ProgressBar1.Position := 0;
  try
    SetLength(Buffer, FileStream.Size); //Buffergröße anhand des Filestreamsize festlegen
    SetLength(bytearray, FileStream.Size); //Bytearray anhand des Filestreamsize festlegen
    ProgressBar1.Max := Length(Buffer);
    fileStream.seek(0,soFromEnd);
    dataByte := 0;
    Progressbar1.Max := berechneteteBytes;
    for i := 1 to berechneteteBytes do
      begin
        FileStream.WriteBuffer(dataByte,1);
        ProgressBar1.Position :=i;
      end;
  finally
    MessageDlg('Exe wurde erfolgreich um ' + IntToStr(berechneteteBytes) + ' Bytes gepumpt. ', mtInformation, [mbOK], 0);
    FileStream.Free;
  end;
end;

Wie kann ich die Schleife jetzt so optimieren, dass sich das Programm während der Schleife nicht mehr aufhängt ?
  Mit Zitat antworten Zitat