![]() |
Re: TObjectList prüfen ob Index exitstiert
Hallo,
der große Vorteil der TObjectList liegt wohl in erster Linie darin, daß sie sich auch um die Freigabe der enthaltenen Objekte kümmern kann. Eventuelle Lücken lassen sich durch einen einfachen Aufruf der Methode Pack wieder schließen. Bei einem dynamischen Array muß ich als Programmierer darauf achten, alle Objekte freizugeben. Das Entfernen von NIL-Zeigern ist hier deutlich aufwendiger. Ob Alexander für die Lösung seines Problems nun ein Array oder ein Listenobjekt nimmt, muß er selbst entscheiden. Offensichtlich ist die Unterstützung von NIL-Zeigern für ihn wichtig. Durch alcaeus' Post konnte aber der Eindruck entstehen, daß TObjectList keine Lücken zuläßt. Dies wollte ich durch meinen vorigen Beitrag richtigstellen. Gruß Hawkeye |
Re: TObjectList prüfen ob Index exitstiert
TObjectList laesst keine Luecken zu, glaub mir. Machen wir mal so was:
Delphi-Quellcode:
Und, kommt beim Zugriff auf MyList.Items[1] eine AV? Nein: Das Element mit dem Index 1 existiert; es ist aber 0. Das heisst, dass dort keine Luecke ist, es steht nur eben Schwachsinn in der Liste. Du kannst Elemente, die nil sind, als Luecken betrachten, es sind aber nicht wirklich Luecken, schliesslich kannst du auch direkt aufs Element zugreifen. Wenn der Index nicht existieren wuerde, dann waers ne Luecke, aber so nicht ;)
var
MyList: TObjectList; MyObject: TObject; begin MyList := TObjectList.Create(); MyList.Add(TObject.Create()); MyList.Add(TObject.Create()); MyList.Add(TObject.Create()); MyList.Add(TObject.Create()); MyList.Add(TObject.Create()); // Nun setzen wir das Element mit dem Index 1 auf NIL MyList.Items[1] := nil; // Und jetzt sehen wir uns mal den Inhalt davon an: MyObject := MyList.Items[1]; MyList.Free(); end; Das ist jetzt allerdings Wortklauberei ;) Greetz alcaeus |
Re: TObjectList prüfen ob Index exitstiert
Hi, also erstmal riesen Dank für eure Hilfe :!:
Besonders der Code ist sehr aufschlussreich. Habe noch ein bisschen rumexperimentiert und habe mich noch nicht entschieden, da array und TobjectList sehr sehr ähnlich sind. Der wichtigste Punkt war mit ja dass man über einen festgelegten Index (mit Lücken) darauf zugreifen kann und dass glaube ich kriege ich nur hin indem ich es dann wahrscheinlich so wie oben beschrieben mache. (wenn mir nix besseres einfällt) Danke für eure Hilfe :!: :!: :!: :hi: Tschüss (fahre jetzt auf Kursfahrt nach Italien Toskana :dancer: ) |
Re: TObjectList prüfen ob Index exitstiert
Zitat:
Zitat:
Jetzt sollten aber alle Klarheiten beseitigt sein :wink: Gruß Hawkeye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 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-2025 by Thomas Breitkreuz