![]() |
Umgang mit tList
Hallo zusammen!
folgende Situation: habe eine große Liste in der ich diverse Daten speichere, und zu jedem der Listenelemente brauche ich noch zwei weitere einfache Listen um strings zu speichern. Das sieht dann folgendermaßen aus:
Delphi-Quellcode:
Hatte die beiden Unterlisten Inhalt und Gruppenliste ursprünglich selbst organisiert, was auch funktioniert hat. Da ich sie aber kombinieren ,sortieren, und doppelte Elemente löschen muß wollte ich auf den Typ tList zugreifen, der diese Methoden schon implementiert hat.
tEleZeiger = ^tElement; //Liste der Elemente
tElement = record Name :string; Gruppe :integer; next :tEleZeiger; Inhalt :tlist; Gruppenliste :tlist; Zahl :integer; end; Ich erzeuge also einen Zeiger
Delphi-Quellcode:
und versuche ihn in die liste einzuhängen:
var Zeiger:^string;
new (Zeiger);
Delphi-Quellcode:
Der compiler akzeptiert es, das Programm aber bricht wegen einer Zugriffsverletzung ab. Kann es sein, daß ch die Liste erst mit .create erzeugen muß? Wie ich es auch anstelle, es kommt nur Murks dabei heraus...
Neuelement^.Inhalt.add (Zeiger); (Neuelement ist vom Typ tEleZeiger, s.o.)
Vielen Dank Manuel [edit=Admin]Code in Delphi-Tags gesetzt. Künftig bitte selber machen. Danke. ;-) Mfg, Daniel[/edit] |
Re: Umgang mit tList
Moin!
Ja, da TList eine Klasse ist musst du diese auch vorher instanziieren und beim entfernen des Elements auch wieder freigeben. MfG Muetze1 |
Re: Umgang mit tList
Hi Mütze,
wie genau soll ich das anstellen? Habe es bislang so versucht: new (NeuElement); Neuelement.Inhalt.create; Dann bricht das Programm aber genau an dieser Stelle ab und erzählt mir etwas von wegen EaccessViolation. komme so nicht weiter... Manuel |
Re: Umgang mit tList
Delphi-Quellcode:
new (NeuElement);
Neuelement.Inhalt := TList.Create; |
Re: Umgang mit tList
Nightshade, du bist definitiv mein Held!
Vielen Dank, es klappt manuel |
Re: Umgang mit tList
Moin!
Sorry, ich dachte das wäre klar, da du schon explizit nach dem "richtigen" Fehler fragtest und auch gleich die richtige Lösung geschrieben hattest. Es klang für mich nur nach einer Bestätigungsfrage zu deiner Vermutung... Nächstes mal dann mit Code... ...Hauptsache ist es aber auch verstanden hast warum und wieso es so heissen muss... MfG Muetze1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz