Kopieren von Recordvariablen... eigentümlicher Fehler
Hallo erstmal!
Ich verzweifle. Ich habe drei Records:
Delphi-Quellcode:
, und ein dynamisches Array vom Typ TFlaeche:
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;
Delphi-Quellcode:
Ich kopiere nun ein Element aus orig_flaechen in ein anderes Element, und verändere eines:
var orig_flaechen: array of TFlaeche
Delphi-Quellcode:
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!!!
orig_flaechen[High(orig_flaechen)] := orig_flaechen[High(orig_flaechen)-1];
inc(orig_flaechen[High(orig_flaechen)].lines[0].pt1.x); 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:
, dann ist ja hinterher auch nicht l = 6, sondern immernoch 3...
// ...
var l, m: integer; begin l:=3; m:=l; m:=m+3; end; ---- ==> Wäre nett, wenn jemand die Antwort und am besten auch ne Lösung wüsste und sie hier postet MfG simlei |
Re: Kopieren von Recordvariablen... eigentümlicher Fehler
Hallo simlei,
du mußt beim Kopieren das Feld lines gesondert kopieren, z.B. mit Hilfe der Funktion Copy. Wirf mal einen Blick in diesen Thread. Gruß Hawkeye |
Re: Kopieren von Recordvariablen... eigentümlicher Fehler
Mit Copy gehts...
Warum funktioniert die einfache Zuweisung nicht? |
Re: Kopieren von Recordvariablen... eigentümlicher Fehler
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz