AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Kopieren von Recordvariablen... eigentümlicher Fehler
Thema durchsuchen
Ansicht
Themen-Optionen

Kopieren von Recordvariablen... eigentümlicher Fehler

Ein Thema von simlei · begonnen am 30. Jun 2006 · letzter Beitrag vom 30. Jun 2006
Antwort Antwort
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
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Kopieren von Recordvariablen... eigentümlicher Fehler

  Alt 30. Jun 2006, 20:25
Hallo simlei,

du mußt beim Kopieren das Feld lines gesondert kopieren, z.B. mit Hilfe der Funktion Delphi-Referenz durchsuchenCopy. Wirf mal einen Blick in diesen Thread.

Gruß Hawkeye
  Mit Zitat antworten Zitat
simlei

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

Re: Kopieren von Recordvariablen... eigentümlicher Fehler

  Alt 30. Jun 2006, 20:37
Mit Copy gehts...
Warum funktioniert die einfache Zuweisung nicht?
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: Kopieren von Recordvariablen... eigentümlicher Fehler

  Alt 30. Jun 2006, 21:02
Zitat von simlei:
Warum funktioniert die einfache Zuweisung nicht?
Weil du Hawkeyes Beitrag nicht komplett gelesen und befolgt hast .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:49 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