AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Image (Canvas) Rückgängig Funktion
Thema durchsuchen
Ansicht
Themen-Optionen

Image (Canvas) Rückgängig Funktion

Ein Thema von Dunkelbunt27 · begonnen am 19. Mär 2011 · letzter Beitrag vom 24. Mär 2011
 
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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:36 Uhr.
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