Frage zu TPaintbox

Tag,

folgendes Problem:
Ich hab ein Programm, in dem in einer Paintbox eine Kurve gezeichnet wird! Nun möchte ich, dass beim überfahren mit der Mouse Linien zum linken bzw. unteren Rand gezogen werde, ähnlich wie es z.B. bei Corel Draw der Fall ist - bis hierhin kein Problem - aber wie bekomme ich diese Linien am einfachsten wieder weg??? Sonst wird bei jeder Mousebewegung eine neue Linie gezeichnet, die alte bleibt aber! Könnte jetzt einfach die Kurve immerwieder neu zeichnen, aber dann kommt es zu einem „flimmern“… bräuchte also ne Art Puffer, aber wie löse ich das Problem mit möglichst wenig Code?
–> oder mache ich es mir zu schwer und es gibt bereits eine Funktion die mir die lösung bietet?

Hoffe auf baldige Hilfe!

DANKE - JENS

Wenn die Linie nicht irrsinnig komplex ist, läßt sich durch Pen.Mode := pmNot erreichen, daß der Hintergrund erhalten bleibt (und nicht neu gezeichnet werden muß). Die Linienfarbe ist einfach invers zum Hintergrund. Nochmaliges Zeichnen macht die Invertierung rückgängig und stellt macht so die Linie wieder unsichtbar.

Das Zeichnen dicker Linier ist langsam. Zum „interaktiven“ Zeichnen der Linie setze also erstmal Pen.Mode = pmNot und Pen.Width := 0. Wenn die Maustaste wieder losgelassen wird, setzt du die Pen-Eigenschaften dann erst auf die gewünschten Werte und zeichnest das „finale“ Bild. Das ist eigentlich immer hinreichend schnell.

Falls doch nicht, erstelle eine Bitmap der selben Größe wie deine Paintbox. Zeichne statt auf Paintbox.Canvas in der selben weise auf Bitmap.Canvas und kopiere den Inhalt des Bitmap.Canvas dann mit dem relativ schnellen API-Befehl BitBlT auf den Paintbox.Canvas (s. API-Hilfe: „BITBLT“, Source-DC ist Bitmap.Canvas.Handle und Target-DC ist Paintbox.Canvas.Handle).

Gruß
Jochen