Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi paintbox.canvas (https://www.delphipraxis.net/14581-paintbox-canvas.html)

ivan 11. Jan 2004 20:42


paintbox.canvas
 
ich habe auf eine paintbox mit canvas etwas gezeichnet. wenn ich jetzt irgendein anderes fenster darüberschiebe, wird alles gezeichnete ausradiert. wie kann ich dies verhindern?

himitsu 11. Jan 2004 22:08

Re: paintbox.canvas
 
Entweder du nimmst ein Image und zeichnest dort rein (Image1.Canvas), oder du zeichnest in ein BitMap (TBitMap) und weist dieses BitMap der PaintBox zu.

Letzteres ist die bessere Variante. (schneller und Resourcen schonender)
Das Erste ist nur einfacher. (man braucht sich halt um nichts zu kümmern)

Delphi-Quellcode:
Var TempBitMap: TBitMap;

Procedure TForm1.FormCreate(Sender: TObject);
  Begin
    TempBitMap := TBitMap.Create;
    TempBitMap.Width := PaintBox1.Width;
    TempBitMap.Height := PaintBox1.Height;
  End;

Procedure TForm1.FormDestroy(Sender: TObject);
  Begin
    TempBitMap.Free;
  End;

Procedure TForm1.PaintBox1Paint(Sender: TObject);
  Begin
    PaintBox1.Canvas.Draw(0, 0, TempBitMap);
  End;


Procedure irgendeine...
  Begin
    {zeichnen}
    TempBitMap.Canvas.Ellipse(10, 20, 30, 40);
    {PaintBox neuzeichnen}
    PaintBox1Paint(nil);
  End;
Diese Variante gibt es auch noch, um die PaintBox neuzuzeichnen
Delphi-Quellcode:
Procedure irgendeine...
  Begin
    ...
    {PaintBox neuzeichnen}
    PaintBox1.Repaint;
  End;


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz