Thema: Delphi teile in canvas löschen

Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: teile in canvas löschen

  Alt 12. Mär 2006, 11:31
Hi,
ein Canvas ist eine sehr einfache Zeichenfläche. Du kannst da beliebig raufzeichnen, aber du überzeichnest rücksichtslos (vom Canvas aus gesehen), mehr Möglichkeiten gibt es erstmal nicht. Das heißt natürlich, dass es keine Ebenen und ähnliches direkt gibt und somit kannst du nicht einfach etwas löschen.
Wenn du einen Canvas wieder löschen willst, dann füllst du einfach die gesamte Fläche mit der Hintergrundfarbe. Wenn du nun einen Funktionsgraphen löschen möchtest, dann kannst du einfach diesen Graphen aus der Liste (von allem was gezeichnet werden soll) löschen, den Canvas mit Hintergrundfarbe überzeichnen und alles was noch in der Liste steht neu zeichnen.

Eine Alternative ist es noch, dem Stift als Stil psXOR bzw. psNotXOR zuzuweisen. Hierbei wird jedes Pixel dass du mit dem Stift bearbeitest XOR verknüpft mit der Stiftfarbe. Der Vollständigkeit halber erwähne ich hier nochmal, XOR ist immer dann wahr, wenn zwei Bits unterschiedlich sind, sonst falsch. Wenn du nun also einen weißen Hintergrund hast ($FF) und du den mit einem weißen Stift XOR verknüpfst, dann kämst du zu $FF XOR $FF = $00 (schwarz). Zeichnest du mit dem gleichen Stift wiederum die gleiche Linie, so verknüpfst du $00 XOR $FF = $FF (weiß). Damit löscht du also auch gezeichnete Linien. Das Problem bei Funktionsgraphen ist, dass du natürlich auch alle Schnittpunkte mit anderen Graphen löscht (darum müsstest du dich dann wieder kümmern)

Gruß Der Unwissende
  Mit Zitat antworten Zitat