Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Grafik optimieren TPaintBox

  Alt 14. Jul 2006, 15:17
Noch ein Nachtrag dazu: Du kannst in der Paint Methode von der Paintbox auch mit IntersectRect() zum einen überprüfen ob du was zeichnen müsstest und zum anderen erhälst du bei einer Positiven Antwort sogar gleich das Rechteck des zu zeichnenden Teilbereiches. Dieses Verfahren wende ich (ist das von negaH beschriebene) in meinem Programm an und es ist recht effektiv. Und TCanvas bietet mit der Eigenschaft ClipRect schon das Rechteck, welches gezeichnet werden müsste.

Delphi-Quellcode:
Procedure TForm1.PaintBox1Paint(Sender: TObject);
Var
  lDrawRect: TRect;
Begin
  If IntersectRect(lDrawRect, PaintBox1.ClientRect, Canvas.ClipRect) Then
  Begin
    BitBlt(p_Canvas.Handle,
             lDrawRect.Left,
             lDrawRect.Top,
             lDrawRect.Right - lDrawRect.Left,
             lDrawRect.Bottom - lDrawRect.Top,
           DeinBitmap.Canvas.Handle,
             lDrawRect.Left - PaintBox1.ClientRect.Left,
             lDrawRect.Top - PaintBox1.ClientRect.Top,
           SRCCOPY);
  End;
End;
DeinBitmap ist dein Bitmap mit der Grafik als gesamtes (die Off-Screen-Bitmap)
  Mit Zitat antworten Zitat