Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Arrays mittels Move( ) verkleinern

  Alt 8. Feb 2013, 21:04
Zitat:
Bei meinem Record funktioniert auch alles glatt,
aber auch nur scheinbar, auch hier werden Stringreferenzen und nicht Inhalte kopiert.
Im Debugger sieht alles gut aus, aber wehe Du fasst einen der Strings an.
Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
const
 C='Vergleichsstring';
var
 i:Integer;

begin
  SetLength(meinRecord,100);
  meinRecord[0].id := 1;
  meinRecord[0].timestamp := C;
  meinRecord[0].nr := 1;
  for i := 1 to High(meinRecord) do move(meinRecord[0],meinRecord[i],SizeOf(TRecord));
  meinRecord[0].timestamp := 'Wurscht'; // jetzt machen wir alles kaputt
  memo1.Lines.Add( meinRecord[1].timestamp);
end;
gültige Kopien bekommst Du durch direkte Zuweisung

 meinRecord[x] := meinRecord[y]; analog für matrix
Delphi-Quellcode:
begin
  SetLength(Matrix,10,10);
  for I := 0 to 9 do Matrix[0][i] := IntToStr(i);
  Matrix[1]:=Matrix[0];
  for I := 0 to 9 do Memo1.Lines.Add(Matrix[1][i]);
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat