Hallo erstmal!
Ich verzweifle. Ich habe drei Records:
Delphi-Quellcode:
TPts2d = record
name:string;
x,y: double;
draw:boolean;
radius, color:integer;
end;
TLines2d = record
name: string;
color_line, color_pts, ptradius: integer;
pt1,pt2: TPts2d;
draw, drawpts:boolean;
end;
TFlaeche2d = record
color_region, color_line, color_pts, ptradius: integer;
lines: array of TLines2d;
drawpts, drawlines, drawregion: boolean;
end;
, und ein dynamisches Array vom Typ TFlaeche:
var orig_flaechen: array of TFlaeche
Ich kopiere nun ein Element aus orig_flaechen in ein anderes Element, und verändere eines:
Delphi-Quellcode:
orig_flaechen[High(orig_flaechen)] := orig_flaechen[High(orig_flaechen)-1];
inc(orig_flaechen[High(orig_flaechen)].lines[0].pt1.x);
Im Debugger muss ich nun feststellen, dass sich die Werte von High(orig_flaechen)].lines[0].pt1.x UND High(orig_flaechen)-1].lines[0].pt1.x verändert haben!!!
Warum geschieht das so? ich greife doch eindeutig nur auf High(orig_flaechen)].lines[0].pt1.x zu!
Oder wird da irgendeine Relationalität verursacht beim kopieren? Aber das ist ja nicht der Zweck... wenn ich sage:
Delphi-Quellcode:
// ...
var l, m: integer;
begin
l:=3;
m:=l;
m:=m+3;
end;
, dann ist ja hinterher auch nicht l = 6, sondern immernoch 3...
----
==> Wäre nett, wenn jemand die Antwort und am besten auch ne Lösung wüsste und sie hier postet
MfG simlei