Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Canvas auf Bitmap leeren (https://www.delphipraxis.net/82610-canvas-auf-bitmap-leeren.html)

Balu der Bär 16. Dez 2006 10:11


Canvas auf Bitmap leeren
 
Moin,

ich hatte folgendes Problem:
Ich malte etwas auf das Canvas eines Forms, wenn man die Programm allerdings minimierte verschwand meine "Kunst" gleich wieder, was ja klar ist da ein Repaint ausgeführt wurde. Also entschloss ich mich das ganze lieber auf TImage.Picture.Bitmap.Canvas zu malen. Klappt auch wunderbar. Jetzt gibt es nur das ich auch gerne wieder das gesamte Canvas manuell löschen möchte, also alle soll weg sein. Ein
Delphi-Quellcode:
Image1.Picture.Bitmap.Canvas.Refresh;
geht jedoch auf einmal nicht mehr, sodass alles da bleibt. Wie kann ich jetzt das gesamte Canvas wieder komplett leeren? :gruebel:

Thx

Khabarakh 16. Dez 2006 10:38

Re: Canvas auf Bitmap leeren
 
Hier im Forum suchenBitmap leeren :zwinker: ?

Balu der Bär 16. Dez 2006 11:05

Re: Canvas auf Bitmap leeren
 
Moin Sebastian,

sicherlich habe ich vorher schon gesucht, bin aber nicht fündig geworden. Ich möchte nicht das Bitmap leeren, sondern nur die Dinge die ich mit Canvas auf das Bitmap gemalt habe.

Mache ich Sachen wie
Delphi-Quellcode:
Image1.Picture.Bitmap.Assign(nil);
wird aber das gesamte Bitmap gelöscht. Das möchte ich nicht, da in diesem Bitmap eine Grafik liegt auf die ich etwas male. Und eben nur das Gemalte soll gelöscht werden. Ich meine klar könnte ich das Bitmap komplett leeren und dann die Grafik neu einlesen, ich dachte aber es gibt eine elegantere Lösung mit welcher ich nur das Gemalte löschen kann...

Khabarakh 16. Dez 2006 11:12

Re: Canvas auf Bitmap leeren
 
Das hättest du aber auch gleich schreiben können ;) .
Nun, da TCanvas keine Daten selbst speichert, sondern nur auf das angegebene HDC zeichnet und ein Bitmap auch nur die aktuellen Daten beinhaltet, gibt es keine Möglichkeit, es wieder automatisch in einen früheren Zustand zu bringen. Du solltest also zuerst das Bild in ein seperates Bitmap einlesen und dieses dann auf das Image-Bitmap zeichnen, wenn die Malaktionen gelöscht werden sollen.

Balu der Bär 16. Dez 2006 11:14

Re: Canvas auf Bitmap leeren
 
Zitat:

Das hättest du aber auch gleich schreiben können
Hab ich ich doch. :P
Zitat:

Canvas auf Bitmap leeren
Okay dann werde ich es eben so machen müssen, danke dir.


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