-
Forum: Programmieren allgemein
Delphi
by Dunkelbunt27,
24. Mär 2011
Danke für das Beispiel Bummi.
Ich habe es probiert, doch es gibt ständig Komplikationen.
Ich hab noch eine andere Idee für die Rückgängigfunktion und lass diese Idee erstmal auf der Strecke.
Trotzdem ist es ziemlich nützlich zu wissen wie man eine solche Anlegen kann unabhängig von der Wirkung die man erreichen will.
FG Dunkelbunt
-
Forum: Programmieren allgemein
Delphi
by Dunkelbunt27,
22. Mär 2011
Hallo nochmal,
ich bin noch etwas unsicher und frage lieber nochmal nach. Entschuldigt die dumme Frage.
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)
...
-
Forum: Programmieren allgemein
Delphi
by Dunkelbunt27,
20. Mär 2011
Interessant, jetzt versteh ich erst richtig wie diese Idee anzuwenden ist!
Wenn man das also z.B: wie in jedem Texteditor (als Beispiel) mit einer Rückgängigtaste auslöst, dann leere ich wie du egsagt hast das Array und spiele die Schritte wieder auf... Das ist wenn man genau drübernachdenkt richtig raffiniert... =D
Danke auch für die ArrayKopier funktionen. Ich denke damit komme ich weiter!
...
-
Forum: Programmieren allgemein
Delphi
by Dunkelbunt27,
20. Mär 2011
Also, das mit den Zellen ist richtig, man kann es auch einfach so sehen, die Zellen bilden ein Raster und du schreibst praktisch einen Text, indem in ejde Zelle ein Buchstabe kommt. Mit der Rückgängig funktion wollte ich versuchen, den aktuellen zustand vor jeder Änderung abzuspeichern, bestenfalls so, dass man mehrere Schritte abspeichert.
Da in einem einzigen mehrdimensionalen Array die Daten...
-
Forum: Programmieren allgemein
Delphi
by Dunkelbunt27,
20. Mär 2011
Hallo Bummi,
danke, das klingt super. Wenn ich immer nur den höchsten Wert kopieren, werden dann immer alle vorherigen Werte mitkopiert?
Würde das kopieren dann so aussehen:
SetLength(TChronologieArray ,High(TChronologieArray ) + 2);
i := High(TChronologieArray);
TChronologieArray.Zeichen := Beispiel.Zeichen;
TChronologieArray.attribut := Beispiel.attribut;
..etc
Ist das beides denn...
-
Forum: Programmieren allgemein
Delphi
by Dunkelbunt27,
19. Mär 2011
Also kurz zur Erklärung:
Ich klicke ein Feld an, tippe einen Buchstaben und der belegt dann den dazugehörigen Platz im Array. Wenn ich dazu noch dem Feld eine Eigenschaft zuweise, dann wird im Array die Eigenschaft vermerkt (Bsp: feld.zeichen := 'A'; feld.attribut := clblue; ).
Ich möchte bevor auf Tastendruck dem eigentlichen Array "feld" das zeichen zugewiesen wird, das Array erst kopieren in...
-
Forum: Programmieren allgemein
Delphi
by Dunkelbunt27,
19. Mär 2011
Ja, das mit dem Array ist alles richtig, da bin ich mir sicher.
SetLength(Beispiel,MaxZeilen+1,MaxSpalten+1);
-
Forum: Programmieren allgemein
Delphi
by Dunkelbunt27,
19. Mär 2011
Meins nicht =)
Ich habe alles um 1 nach rechts verschoben, damit es später logischer nachzuvollziehen ist.
-
Forum: Programmieren allgemein
Delphi
by Dunkelbunt27,
19. Mär 2011
Das funktioniert in meinem Fall nicht. Es ist jeder Platz belegt. Ich habe praktisch ein Raster, dessen Werte und Eigenschaften der Felder in dem dynamischen, mehrdimensionalen Array gespeichert sind.
Ich hab es jetzt so:
procedure ZustandSpeichern;
var i,n : integer;
begin
for i := 1 to MaxZeilen do
for n := 1 to MaxSpalten do
begin
SpeicherArray.zeichen :=...
-
Forum: Programmieren allgemein
Delphi
by Dunkelbunt27,
19. Mär 2011
Ich hab mir gedacht einfach ein gleichgroßes Array zu benutzen, etwa so:
Speicherarray : array of array of TBeispiel;
Wenn das funktionieren sollte.
-
Forum: Programmieren allgemein
Delphi
by Dunkelbunt27,
19. Mär 2011
Danke,
mein Fehler, ich war am Anfang auf dem falschen Weg.
Für meine Zwecke ist es denke ich sinnvoller den Inhalt meines Arrays zu speichern.
Meine Frage ist jetzt wie ich das Array:
type
TBeispiel = record
Zeichen : char;
attribut : byte;
end;
-
Forum: Programmieren allgemein
Delphi
by Dunkelbunt27,
19. Mär 2011
Okay,
zum Array-Rückgängigmachen probiere ich ersteinmal selber bis ich eine konkrete Frage habe.
Wie funktioniert das?
Warum ist das unbedingt nötig?
procedure ZustandSpeichern(var DestArray: array of array of TBeispielarray; SrcArray: array of array of TBeispielarray);
begin
DestArray := SrcArray;
end;
-
Forum: Programmieren allgemein
Delphi
by Dunkelbunt27,
19. Mär 2011
Okay, danke, das funktioniert schonmal.
Jetzt habe ich nurnoch das Problem, dass ich den Zustand meines Arrays speichern muss, da jedem Punkt ein Zeichen zugewiesen ist und bei jedem neuzeichnen das rückgängig gemachte Zeichen wieder erscheint.
... Im Prinzip ist es sogar unsinnig das Canvas rückgängig zu machen... wenn ich einfach das Array einen Schritt zurücksetze und dann neuzeichne kommt...
-
Forum: Programmieren allgemein
Delphi
by Dunkelbunt27,
19. Mär 2011
Hallo Delphi-PRAXIS,
ich möchte eine Rückgängig und Wiederholen Funktion für mein Image programmieren. Ich habe mir das so gedacht:
- Inhalt des Canvas auf einem Bitmap vor jeder Änderung(zeichnen) speichern, sodass es immer eine Kopie vom letzten Schritt gibt
procedure ZustandSpeichern(Image: TImage; var bmp: TBitmap);
begin
...