Einzelnen Beitrag anzeigen

simlei

Registriert seit: 23. Nov 2005
119 Beiträge
 
Delphi 7 Professional
 
#1

Kopieren von Recordvariablen... eigentümlicher Fehler

  Alt 30. Jun 2006, 20:09
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
  Mit Zitat antworten Zitat