Hallo zusammen!
Ich möchte eine Paintbox mit Icons (50px*50px) füllen. Das ganze bildet eine Art "Raster" mit 40*20 Feldern.
Wenn ich jetzt aber die Procedure aufrufe, so dauert es fast eine ganze Sekunde, bis die Paintbox fertig geupdated ist.
Kommentiere ich jetzt die Zeile mit
icons.GetBitmap(2,bmp);
aus, dann wird die Paintbox in null-komma-nix gezeichnet...
Merkbar ist's vor allem an den Testweise eingefügten Messages. Mit der Zeile: ca. 1s - Ohne Zeile: kaum merkbare Zeit zwischen den Messages.
Daher vermute ich, dass es wohl an der Imagelist liegt. Kann mir jemand ein Tipp geben, wie ich das Problem lösen kann?
Die Zeit ist nicht tragbar, da durch Userinteraktion sich das Rsater ändert und ne gezeichnet werden muss...
Danke schonmal!
Adrian
Delphi-Quellcode:
procedure TmainFormular.Draw;
var X, Y: integer;
bmp: Tbitmap;
zwp: TPicture;
begin
showmessage('Start');
zwp := TPicture.Create;
zwp.Bitmap.Width := 50*40;
zwp.Bitmap.Height := 50*20;
for X:=0 to 40 do begin
for Y:=0 to 20 do begin
bmp := Tbitmap.Create;
icons.GetBitmap(2,bmp);
//^^ Hier ist meine Problemzeile
zwp.Bitmap.Canvas.Draw(x*50,y*50,bmp);
bmp.Free;
end;
end;
Paintbox1.Canvas.Draw(0,0,zwp.Graphic);
zwp.Free;
showmessage('Ende');
end;
(Prozedur ist auf das nötigste gekürzt worden. So habe ich es auch getestet...)