Zitat von
Jmh124:
eigentlich war ich der meinung ich mache das mit setlength ;/
Ja, aber damit setzt du nur die Länge des Arrays. Die einzelnen Record-Objekte brauchen auch Speicher.
Also:
Wenn du Pointer benutzt, dann musst du erst Speicher für die einzelnen Objekte reservieren, bevor du sie benutzen kannst. Wenn du das Prinzip von Pointern noch nicht verstanden hast rate ich dir dringed zu einem Tutorial(Edit:
z.B. hier) bzw einem wikipedia Besuch.
Trotzdem hier mal der Code mit dem es klappt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
SetLength(PList,100,100);
GetMem(PList[45,10],SizeOf(TTextList));
PList[45,10].text := 'Test';
ShowMessage(PList[45,10].text);
FreeMem(PList[45,10]);
end;
Allerdings musst du vorher die String-Länge begrenzen
Delphi-Quellcode:
TTextlist = record
text: string[255];
end;