Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi undo für canvas-ereignisse (https://www.delphipraxis.net/3081-undo-fuer-canvas-ereignisse.html)

Haegar 21. Feb 2003 21:34


undo für canvas-ereignisse
 
also ich hab um das system der ganzen malerei zu verstehen (anfangs hatte ich damit probleme, jetzt gehts eigentlich) ein ziemlich simples ""malprogramm" gebastelt! es beinhaltet lediglich die funktionen LineTo; MoveTo; canvas.rectangle; canvas.ellpise. wie gesagt, das war am anfang wo ich mit 2D-grafiken angefangen habe. man kann da wunderbar eine linie oder was auch immer hintereinander-weg malen, doch wie mach ich das, wenn ich das zuletzt gezeichnete (sei es ne linie oder ein rechteck oder Kreis/Ellipse) wiederrufen möchte!????

bei einem strich is einfach....einfach Form1.repaint :firejump: (watt ein brüller :nerd: )
naja spas beiseite.
hatte schonmal gesucht unter "undo", bin aber nicht wirklich schlau draus geworden!
ich weiß, is glaube ich kein einfaches ding, aber irgendwann muss ich ja mal fragen :roll:

danke schonmal

ciao haegar

sakura 22. Feb 2003 12:25

Das Canvas Objekt unterstützt kein Undo. Wenn Du eine Undo Funktion liefern willst, dann musst Du Dir die vorhergehende(n) Variante merken und bei Bedarf wieder darauf zugreifen.

...:cat:...

Mirilin 22. Feb 2003 13:03

Könntest nach jeder Aktion, das Bitmap auf welches Du zeichnest in ein anderes "kopieren" und dann dieses, wenn Du undoost wieder übernehmen.

Haegar 22. Feb 2003 16:11

na gut, noch male ich auf Form1.canvas..... :roll:
das mit den bitmaps is denk ich ne gute variante. is hoffentlich so einfach wie ich mir das denke, aber erstml probieren.
is aber nicht grad die speichersparenste methode, stimmts? ich hatte mir schonmal mehrere redo/undo-sources angeschaut, doch waren die noch zu kompliziert für mich, also werd ich es erstmal bei der variante belassen :lol:

ok machts gut haegar


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