Einzelnen Beitrag anzeigen

Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#4

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

  Alt 7. Jan 2006, 01:06
HI!

Sorry für Doppelposting, aber der übersichtlichkeit halber

Einfachestes Testprog:

Delphi-Quellcode:
type TKante = class(TObject)
 x1,x2: TPoint;
end;

type Tkantenarray= array of Tkante;

var
  Form1: TForm1;
  kante: TKantenarray;

[...]

procedure TForm1.Button1Click(Sender: TObject);
begin
setlength(kante,1);
kante[0]:=Tkante.Create;
kante[0].x1:=Point(0,1);
kante[0].x2:=Point(0,1);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 test: Tkantenarray;
begin
setlength(test,1);
test[0]:=Tkante.Create;
test:=copy(kante,0,1);
test[0].x1:=Point(80,80);
test[0].x2:=Point(80,80);
end;
Trotz Copy wirkt sich die Änderung von Test auf Kante aus...
Was tun?
Erneute Tests haben gezeigt, dass nicht die Arrays voneinander abhängen, sondern ihre Inhalte
also kante[0] und test[0], und das bei unterschiedlichen Speicheradressen
ich bekomm Kopfschmerzen



Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat