Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Linie bzw. Kreise über TImage erzeugen und wieder entfernen (https://www.delphipraxis.net/40763-linie-bzw-kreise-ueber-timage-erzeugen-und-wieder-entfernen.html)

aquatinta 20. Feb 2005 16:29


Linie bzw. Kreise über TImage erzeugen und wieder entfernen
 
Hallo Forum,
ich habe mich über google, hier im Forum und in den anderen Hilfemöglichkeiten (OH, viele dicke Bücher usw.) umgeschaut und trotzdem keine Antwort gefunden auf die Frage:
Wie lösche ich eine mit canvas.MoveTo und canvas.LineTo erzeugte Linien, ohne die ganze Fläche von TImage, welche ein Bitmap mit Raster enthält, mit FillRect zu verhunzen? Gibt es eine Möglichkeit das Programm zurückzusetzen? Oder kann man das Bitmap neu aus dem Programm heraus neu laden?
Das mit dem Überschreiben wäre auf einer einfarbigen Fläche kein Problem und ich habe es auch geschafft die gleiche Linie zu überschreiben. Aber bei einer Zeichnung als Hintergrund ist die Linie dann schwach als leere Linie zu sehen. Es käme also nur die 2. Möglichkeit in Frage. Aber wie kann ich das fabrizieren? Das Originalbitmap ist im Programm doch enthalten, nur, wie kann ich es zur Laufzeit neu laden oder erscheinen lassen? Mit refresh passiert zb. gar nix. Ist es denn sinnvoll oder sogar notwendig, das Originalbild als *.bmp Datei mitzuliefern und jedesmal neu zu laden? Ich habe auch keine Möglichkeit gefunden, praktisch in einer 2. Ebene und mit Transparenz etwas zu machen, da bin ich halt von Flash verwöhnt, das ist aber eine andere sache.

Wie so oft - aber nicht immer - ratlos
Christian

sniper_w 20. Feb 2005 16:39

Re: Linie bzw. Kreise über TImage erzeugen und wieder entfer
 
Offscreen Bitmaps, Doublebuffering sind Stichwörter...Schau mal Tetris von mir unter Tetris
Ansonsten, die Linie die du gerade gezeichnest hast, kannst du sie löschen, in dem du es ein 2.Mal zeichnest, aber nur wenn Pen.Mode zum ersten und zweiten Mal auf pmNotXor gesetzt ist.

Binärbaum 20. Feb 2005 16:40

Re: Linie bzw. Kreise über TImage erzeugen und wieder entfer
 
Am einfachsten ist es, das Bild wieder neu zu laden, um den Ausgangszustand herzustellen.
Delphi-Quellcode:
Image1.Picture.LoadFromFile('Bild.bmp');
MfG
Binärbaum

Binärbaum 20. Feb 2005 16:45

Re: Linie bzw. Kreise über TImage erzeugen und wieder entfer
 
Zitat:

Zitat von aquatinta
Ich habe auch keine Möglichkeit gefunden, praktisch in einer 2. Ebene und mit Transparenz etwas zu machen...

Das liegt daran, dass Bitmaps keine Ebenen unterstützen, sondern nur eine einzige "Ebene" haben.
Allerdinsg gibt es bei TImage die Eigenschaft Delphi-Referenz durchsuchenTransparent. Evtl. hilft dir das weiter.

MfG
Binärbaum

aquatinta 20. Feb 2005 17:14

Re: Linie bzw. Kreise über TImage erzeugen und wieder entfer
 
Hallo Ihr beiden,
danke für die schnellen Antworten, welche so in etwa meine Gedankengänge bestätigen. Ich probier mal alles aus und frag dann nach :)
Christian


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