Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Rückgängig-Funktion ? (https://www.delphipraxis.net/108843-rueckgaengig-funktion.html)

ImPaty 20. Feb 2008 11:26


Rückgängig-Funktion ?
 
Hallo!
Ich habe folgendes Problem :

In meinem eigenen "miniPaint" habe ich bereits alle möglichen funktionen drin. Von Speichern über Laden, Füll- und Sprühdosenfunktion. Nun habe ich mich gefragt, wie ich es denn hinkriegen kann, das ich eine Rückgängig bzw. Wiederherstellen funktion habe! Ausprobiert habe ich schon viel aber eine richtige Lösung habe ich nciht gefunden ! HAT JEMAND EINE IDEE?

Hoffe auf Antwort !
MfG Paty

Luckie 20. Feb 2008 11:30

Re: Rückgängig-Funktion ?
 
Zitat:

Zitat von ImPaty
HAT JEMAND EINE IDEE?

Kein Grund hier rumzuschreien.

Was hast du denn schon ausprobiert? Ich würde vor jeder Aktion, die aktuelle Grafik im Speicher ablegen und dort sichern. Soll ein Schritt rückgängig gemacht werden, wird einfach die gespeicherte Version auf die Zeichenfläche kopiert. Und wenn du die Sicherungskopien in einer Liste (Verwalten von Objekten in einer Container-Klasse) ablegst, kannst du sogar mehrere Schritte rückgängig machen. Sollte nicht sehr schwer sein dies zu implementieren.

Helmi 20. Feb 2008 11:38

Re: Rückgängig-Funktion ?
 
Liste der Anhänge anzeigen (Anzahl: 2)
hallo

ich hab hierfür mal ein Tutorial gefunden.

Anbei das Tutorial und die Quelltexte

Vielleicht hilfts dir ja!

stahli 20. Feb 2008 11:39

Re: Rückgängig-Funktion ?
 
Hi und herzlich willkommen :-)

eine komplette Lösung habe ich nicht parat, nur 3 Überlegungen:

- Welche Schritte sollen rückgängig gemacht werden? Genauen Punkt festlegen...
- Dann könntest Du
a) ein komplettes Bild mit aktuellem Stand im Speicher oder auf Festplatte ablegen oder
b) alle Pixeländerungen merken (x,y,OldColor,NewColor)
c) die Aktion "Füllen an Position x/y mit Ursprungsfarbe OldColor" merken und später eine "Gegenaktion daraus berechnen. Das wird aber nicht funktionieren, wenn Du weiße Bereiche, welche an schwarze Bereiche angrenzen, mit schwarz füllst. Ebenso würd es dabei Probleme mit "Sprühdose rückgängig" geben.

Also am einfachsten wird a) sein. Wenn Speicherplatz eine Rolle spielt dann b).

stahli

mkinzler 20. Feb 2008 11:43

Re: Rückgängig-Funktion ?
 
Man könnte auch die Aktionen in eigenen Ebenen durchführen, dann könnte man die Aktionen einzeln zurücknehmen ohne folgende Operationen zu beinflussen.

ImPaty 20. Feb 2008 11:50

Re: Rückgängig-Funktion ?
 
Ich habe das hier mal ausprobiert :
Undo redo etc.

hat aber nicht funktioniert. Zwar keine Fehlermeldungen aber auch sonst nichts.


danke für die schnelle Antwort.

Luckie 20. Feb 2008 11:53

Re: Rückgängig-Funktion ?
 
Dir ist klar, dass sich der Code auf Texteingabefelder bezieht?

xaromz 20. Feb 2008 11:55

Re: Rückgängig-Funktion ?
 
Hallo,

über die grundlegende Arbeitsweise habe ich ein Tutorial Undo/Redo geschrieben. Dort gibt es auch eine Klasse, welche die Überlegungen umsetzt.

Gruß
xaromz

ImPaty 20. Feb 2008 11:55

Re: Rückgängig-Funktion ?
 
Das habe ich vor einer stunde gelesen .. Ja ^^ Mit den Containern ist eine gute idee.

ImPaty 20. Feb 2008 11:59

Re: Rückgängig-Funktion ?
 
Ja kla das mit dem Tutorial ist ja okay aber funktioniert das überhaupt bei einem Image?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz