Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - EIn Feld von Stringlisten


LonghornUser - Mi 22.02.06 23:37
Titel: EIn Feld von Stringlisten
Hallo,

ich habe da mal wieder eine Frage:
Ich habe mittels

Delphi-Quelltext
1:
Stringlisten: array of TStringlist;                    

ein Feld von Stringlisten erstellt. Ich brauche das, weil die Stringlisten zur Laufzeit erstellt werden sollen.
Jetzt möchte ich eine Stringlist erstellen in dem Feld mittels:

Delphi-Quelltext
1:
Stringlisten[0] := TStringlist.Create;                    


Ich bekomme aber nur eine Zugriffsverletzung. Was mache ich falsch ?

Ciao LHUser

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt


Grishnak - Mi 22.02.06 23:46

Hast du vorher per "SetLength()" die Array-Größe eingestellt?


LonghornUser - Mi 22.02.06 23:50

Nein, da die ARRAY-Größe unbegrenzt sein soll. Es soll so eine Art dynamisches Array sein, welches der Benutzer erweitern können soll. Was mache ich denn falsch ?


Grishnak - Mi 22.02.06 23:51

Bevor du das Array benutzen kannst, musst du aber eine Größe festlegen! Natürlich kannst du die auch später wieder ändern (evtl. .Create- oder .Free-Aufrufe aber nicht vergessen!).

Alternative: TObjectList


Christian S. - Mi 22.02.06 23:52

Du musst während der Laufzeit die Array-Größe mit SetLength festlegen. Du kannst ein Array dann auch hinterher noch verlängern, bist da also flexibel, aber die Länge musst Du schon bestimmen.

Schau Dir das mal in der Delphi-Doku oder in meinen Crashkurs [http://www.christian-stelzmann.de/artikel/crashkurs.htm#dynamischearrays] an. :-)


Lannes - Do 23.02.06 00:35

Hallo,

oder Du baust dir sowas wie TStringList(oder TList) of TStringList.