Einzelnen Beitrag anzeigen

Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#5

Re: Delphi ändert Werte ohne Zuweisung oder Copy bei Dyn-Arr

  Alt 7. Jan 2006, 07:47
Delphi-Quellcode:
setlength(test,1);
test[0]:=Tkante.Create;
test:=copy(kante,0,1);
test[0].x1:=Point(80,80);
test[0].x2:=Point(80,80);
die Vorbereitungen (Zeile 1 + 2) machst Du mit Zeile 3 wieder zu nichten:
test:=Copy(kante,0,1) wird vom Compiler folgendermassen übersetzt:
SetLength(test,1);
test[0]:=kante[0];

womit Du dann frisch-fröhlich mit der selben Objekt-Instanz hantierst, auf die auch kante[0] zeigt - Object-Referenzen sind Zeiger auf die Objekte.... (Copy kopiert nicht die Objekte selber, sondern lediglich die Zeiger darauf)
  Mit Zitat antworten Zitat