Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Auf Bitmap zeichnen ohne ruckeln?? (https://www.delphipraxis.net/62574-auf-bitmap-zeichnen-ohne-ruckeln.html)

McDaTob 6. Feb 2006 17:58


Auf Bitmap zeichnen ohne ruckeln??
 
Hi,
ich möchte eine Komponente realisieren, bei der der Hintergrund
eine Bitmap ist, und ich darauf (ähnlich wie Paint) Linien und
Radien zeichnen kann.
Habe dazu eine Liste der Start- und Endpunkte im Speicher
hinterlegt, damit ich einzelne Linien wieder löschen kann.
Wenn das Bitmap dann gezeichnet wird, werden die Linien nacheinander
auf das Canvas des Bitmap gezeichnet und dieses in einem TImage
angezeigt. Mein Problem liegt darin, dass die Linie bei gedrückter Maustaste
schon gezeichnet wird (wie es bei Paint eben auch ist).
Daher flackert das Bild durch das wiederholte Neuzeichnen extrem stark.
Eine Möglichkeit wäre, das Bild nur an der Stelle neuzuzeichnen, wo
die Linie vorher war, doch wie soll ich den Teil einer Bitmap,
der die Form einer Linie hat laden??
Ich hoffe, ich habe mein Problem deutlich gemacht.
Wäre schön,wenn jemand einen Lösungsvorschlag hätte.

NormanNG 6. Feb 2006 18:17

Re: Auf Bitmap zeichnen ohne ruckeln??
 
Hi,

erstelle doch das komplette Abbild im Speicher und zeige es erst dann an... dann flackert nix.

McDaTob 6. Feb 2006 18:22

Re: Auf Bitmap zeichnen ohne ruckeln??
 
Hi,
hab ich vergessen zu erwähnen.
Ich habe das originale Bitmap in einer Variablen gespeichert.
Eine Variable um das Abbild zu erstellen (genau, wie du meintest).
Und erst am Schluß wird dieses dem Imgae.Picture.Bitmap zugewiesen.
Und doch, es flackert in der MouseMove leider ziemlich arg.

turboPASCAL 6. Feb 2006 18:27

Re: Auf Bitmap zeichnen ohne ruckeln??
 
Und ich wurde kein TImage nehmen, denn das neuzeichnen (schnelles) bringt das flackern.
Benutze zB. eine Paintbox und das OnPaint-Event in dem das Bitmap in die PaintBox gezeichnet wird.

McDaTob 6. Feb 2006 18:42

Re: Auf Bitmap zeichnen ohne ruckeln??
 
Also,
mit ner PaintBox in verbindung mit DoubleBuffered := true funktioniert es super.
Danke!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 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