Einzelnen Beitrag anzeigen

R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#3

Re: schneller Ersatz für timage

  Alt 14. Apr 2009, 09:24
Hallo mkinzler,

danke für deinen Tip, habs ausprobiert ist eher noch langsamer.
Das Problem scheint die parent-Zuweisung zu sein.

Delphi-Quellcode:
  setlength(bmdraw,breite,hoehe);
  for n := 0 to breite-1 do
    for m := 0 to hoehe-1 do
    begin
      bmdraw[n,m]:=timage_ext.create(self);
      //bmdraw[n,m].Parent:=Gleisbild; //langsame Version
      bmdraw[n,m].Picture.Bitmap.Width:=22;
      bmdraw[n,m].Picture.Bitmap.height:=22;
      bmdraw[n,m].Top:=2;
      Bm.Schienen.GetBitmap(0, bmdraw[n,m].Picture.Bitmap);
      bmdraw[n,m].Left:=n*23;
      bmdraw[n,m].top:=m*23;
      bmdraw[n,m].OnMouseDown:=FormMouseDown;
      bmdraw[n,m].ext_x:=n;
      bmdraw[n,m].ext_y:=m;
      bmdraw[n,m].Parent:=Gleisbild; //schnelle Version
    end;
Ich habe die parent Anweisung ans Ende des Codes geschrieben und jetzt funktioniert das Ganz innerhalb von 1 sec.
Warum ist mir allerdings unklar. Kann es sein, dass die Bitmap danach (nach parent) bei jeder Änderung neu gezeichnet werden muss?

Vielen Dank!
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat