Einzelnen Beitrag anzeigen

BR146

Registriert seit: 21. Mär 2012
2 Beiträge
 
Delphi 6 Personal
 
#1

TimageList.getImage zu langsam

  Alt 26. Aug 2012, 17:24
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...)
Adrian
  Mit Zitat antworten Zitat