Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
Delphi XE3 Enterprise
|
AW: Image (Canvas) Rückgängig Funktion
20. Mär 2011, 20:39
Du kannst freilich Array's kopieren
Delphi-Quellcode:
// Fixe Array's völlig unproblematisch
procedure TForm1.Button1Click(Sender: TObject);
type
r=Record
c:Char;
f:Byte;
end;
TArr=array[0..9,0..9] of r;
var
a,b:TArr;
i,j:Integer;
begin
for I := 0 to 9 do
for j := 0 to 9 do
begin
a[i,j].c := Char(Ord('0') + i*10 + j) ;
a[i,j].f := i*10 + j;
end;
b := a;
Caption := b[2,2].c +'-'+ IntToStr(b[2,2].f)
end;
// Asymetrische Array, eben Iterativ
procedure TForm1.Button2Click(Sender: TObject);
type
r=Record
c:Char;
f:Byte;
end;
TArr = Array of Array of r;
var
a,b:TArr;
i,j:Integer;
Function CopyMyArray(a:TArr):TArr;
var
x,y:Integer;
begin
SetLength(Result,High(a) + 1);
for x := Low(a) to High(a) do
begin
SetLength(Result[x],High(a[x])+1);
for y := Low(a[x]) to High(a[x]) do Result[x,y] := a[x,y];
end;
end;
begin
SetLength(a,10);
for I := Low(a) to High(A) do
begin
SetLength(a[i],i);
for j := Low(a[i]) to High(a[i]) do
begin
a[i,j].c := Char(Ord('0') + i*10 + j) ;
a[i,j].f := i*j;
end;
end;
b := CopyMyArray(a);
if (a[4,2].c=b[4,2].c) and (a[4,2].f=b[4,2].f) then Showmessage('Passt scho...')
end;
Trotzdem bin ich sicher dass Dir meine eigentlich Struktur langt und den Speicherbedarf minimiert.
Wenn jedes Zeichen erfasst wird und der Benutzer nach 100 Schritten zu Schritt 98 zurückkehren will, leerst Du Dein Grundarray und spielst die Aufzeichnungen bis Schritt 98 wieder ein ... und so weiter...
Thomas Wassermann H₂♂ Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂♂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
|
|
Zitat
|