So, nach der Anregung von Herrn Schumann die Lösung mit TList:
Delphi-Quellcode:
type
StringArray = record
MyString: String;
end;
PStringArray = ^StringArray;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
MyList: Tlist;
sa: PStringArray;
Loop: Integer;
begin
MyList := TList.Create;
try
New(sa);
sa.MyString := 'Egon';
MyList.Add(sa);
New(sa);
sa.MyString := 'Klaus';
MyList.Add(sa);
New(sa);
sa.MyString := 'Michaela';
MyList.Add(sa);
for Loop := 0 to myList.Count-1 do
begin
sa := MyList.Items[Loop];
Listbox1.Items.Add(sa.MyString);
end;
for Loop := 0 to MyList.Count-1 do
begin
sa := MyList.Items[Loop];
Dispose(sa);
end;
finally
FreeAndNil(MyList);
end;
end;
Eigentlich auch so in der Hilfe zu finden.
Zu beahcten ist nur, dass man vor dem Hinzufügen, neuen Speicher reserviert (New) für den Record und nach Gebrauch selbigen wieder frei gibt (Dispose). Ist eventuell etwas umständlicher, dafür ist man mit dem Zeiger auf den Record aber felxibeler, man kann mehr Speichern und muss nicht auf mehrdimensionale Arrays zurückgreifen.