Einzelnen Beitrag anzeigen

[TP]Hawk274
(Gast)

n/a Beiträge
 
#1

dynamischer Array zur Laufzeit vergrößern

  Alt 27. Apr 2003, 12:43
Ich intialisiere ein dynamisches Array im Konstruktur von meiner Klasse mit einer Länge von 5. Während der Laufzeit muss ich aber das Array bei Bedarf vergrößern.
Muss ich dann den alten Inhalt des array's speichern bzw. einen Pointer drauf legen oder sind meine Daten dann noch vorhanden.
Zu Testzwecken habe ich das schon einmal ausprobiert und die Daten sind noch vorhanden. Ich weiß jetzt aber nicht ob das Zufall sein kann, weil der Speicherbereich vielleicht überschrieben werden kann und dann wäre meine Daten weg.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  dynArTmp: array of string;
  i: integer;
begin
  SetLength(dynArTmp, 5);
  Memo1.Clear;
  for i:= Low(dynArTmp) to High(dynArTmp) do
  begin
    dynArTmp[ i ] := 'Test ' + IntToStr(i);
    Memo1.Lines.Insert(Memo1.Lines.Count, dynArTmp[ i ]);
  end;

  Showmessage('Array länge wird nun vergrößert!');

  SetLength(dynArTmp, High(dynArTmp)+5);
  Memo2.Clear;
  for i:= Low(dynArTmp)+5 to High(dynArTmp) do
    dynArTmp[ i ] := 'TestX ' + IntToStr(i);

  //alle anzeigen
  for i:= low(dynArTmp) to High(dynArTmp) do
    Memo2.Lines.Insert(Memo2.Lines.Count, dynArTmp[ i ]);
  
  SetLength(dynArTmp, 0);
  dynArTmp := nil;
end;
  Mit Zitat antworten Zitat