Einzelnen Beitrag anzeigen

Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#24

AW: Image (Canvas) Rückgängig Funktion

  Alt 22. Mär 2011, 17:18
Hallo nochmal,

ich bin noch etwas unsicher und frage lieber nochmal nach. Entschuldigt die dumme Frage.
Zitat:
leerst Du Dein Grundarray und spielst die Aufzeichnungen bis Schritt 98 wieder ein
Mein Array kann ich doch indem ich den Ausgangszustand herstelle, nicht?
Wie spiele ich dann die Schritte 1-98 wieder auf?

EDIT: (Ich komme da total durcheinander, weil ich ja X und Y Werte für die Buchstaben habe... aber ich denke Du oder jemand anders kann mir da weiterhelfen =D)

Ich hab es so gemacht, doch es ist irgendwo was falsch:

var Chronozaehler : integer = 0; Bei jeder Veränderung:
Delphi-Quellcode:
SetLength(TChronologieArray ,High(TChronologieArray )+2); //warum eigentlich +2? Nicht +1?
Chronozaehler := High(TChronologieArray);

TChronologieArray[Chronozaehler].attribut := buchstabe[PositionZeile,PositionSpalte].attribut;
TChronologieArray[Chronozaehler].X := PositionZeile;
TChronologieArray[Chronozaehler].Y := PositionSpalte;
Auf Druck der Undo-Taste:
Delphi-Quellcode:
if Chronozaehler > 0 then
Chronozaehler := Chronozaehler-1;

for i := 0 to AnzahlZeilen do
    for n := 0 to AnzahlSpalten do
      begin
        buchstabe[i,n].Zeichen := ' ';
        buchstabe[i,n].attribut := 0;
      end;

for i := Low(TChronologieArray) to Chronozaehler do
    buchstabe[TChronologieArray[i].X,TChronologieArray[i].Y].Zeichen := TChronologieArray[i].Zeichen;

PositionZeile := TChronologieArray[Chronozaehler].X;
PositionSpalte := TChronologieArray[Chronozaehler].Y;
Ich finde es funktioniert auch recht gut, aber unerklärlicherweise rutscht bei ersten Undo einfach alles eine Spalte nach rechts und der letzte Buchstabe verschwindet, also:
aus Hallo[] wird _Hall[]. ([] = Cursor)
Beim zweiten mal ist es dann so wie es soll.
Aus _Hall[] wird _Hal[] ...


FG Dunkelbunt

Geändert von Dunkelbunt27 (22. Mär 2011 um 18:19 Uhr)
  Mit Zitat antworten Zitat