Das ist ja mal wirklich gruselig! Pixel für Pixel!
Hier mal ein kleiner Ansatz, wie es schneller geht.
Da ist aber noch Luft nach oben.
Delphi-Quellcode:
procedure TForm1.Loop(CountTo: integer);
var
c : integer;
begin
c := 0;
while c < CountTo
do
begin
Invalidate;
Application.ProcessMessages;
inc(c);
if c
mod 10 = 0
then
edit1.Text := inttostr(c);
end;
edit1.Text := '
done';
end;
procedure TForm1.WMPaint(
var Message: TWMPaint);
var
PaintStruct: TPaintStruct;
begin
BeginPaint(
Handle, PaintStruct);
try
FCanvas.BeginDraw;
try
FCanvas.StretchDraw(ClientRect, FBitmap);
finally
FCanvas.EndDraw;
end;
finally
EndPaint(
Handle, PaintStruct);
end;
end;