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
?