AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TCollection vs. TObjectlist

Offene Frage von "ozz"
Ein Thema von ozz · begonnen am 10. Mär 2007 · letzter Beitrag vom 10. Mär 2007
Antwort Antwort
ozz

Registriert seit: 26. Jun 2005
131 Beiträge
 
#1

TCollection vs. TObjectlist

  Alt 10. Mär 2007, 08:48
Hallo Leute,
ich habe noch ein kleines Verständnisproblem für den Einsatz von Tcollection. Wann ist es empfehlendswert TCollection zu nehmen? Bisher habe ich den einzigen Vorteil darin gesehen, das ich die Teile auch strukturiert speichern kann. Gibt es noch andere Gründe?

Danke!
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: TCollection vs. TObjectlist

  Alt 10. Mär 2007, 09:22
Hallo ozz!

welche Liste du einsetzt, hängt meines Erachtens vom Einsatzzweck ab,
denn jede dieser Listen hat eigene Besonderheiten.

Wie du schon sagtest, kannst du mit TCollection ein strukturierte
Liste anlegen, während du mit TObjectList eine einfache Liste
für Objekte hast.
Das besondere an TObjectList ist meines Wissen nur, dass du ihr auch
die Verwaltung der Objekte überlassen kannst, also das Freigeben
beim Löschen einzelner Einträge oder der ganzen Liste. Sonst ist
es im Grunde genommen eine einfache Liste für Pointer.

Man kann also beide Listen gut gebrauchen - nur eben für unterschiedliche
Einsatzgebiete.


Gruß
Pfoto
Jürgen Höfs
Jürgen Höfs / picoly.de
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: TCollection vs. TObjectlist

  Alt 10. Mär 2007, 10:49
Wie bereits erwähnt, bestimmt der Einsatzzweck welche Liste besser geeignet ist. Das Speichern wurde doch schon erwähnt: also TCollection. Die TCollectionItems können normalerweise nur bestimmte Objekttypen aufnehmen, bei TObjectList kannst Du reinhauen was Du willst. Erstellst Du Komponenten mit Eigenschaften, die im OI eine ItemsList öffnen (z.B. persitente Felder in TDataset, oder ein DBGrid mit seinen Columns Eigenschaft), so bist auf auf TCollection gezwungen.

Eine TObjectList ist einfach mal so schnell erstellt, bietet aber halt weniger Funktionalität als eine TCollection.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: TCollection vs. TObjectlist

  Alt 10. Mär 2007, 10:55
@Pfoto: auch TObjectList kuemmert sich um die Speicherverwaltung, wenn du ihr das sagst. Das neue Objekt musst du natuerlich selbst erstellen; TObjectList weiss ja nicht, was du da reinwerfen willst. Du erstellst ein Objekt, fuetterst es der Liste, und gut ist. Wirfst du es aus der Liste raus, macht die Liste selbst alles wieder sauber
Wenn du einfach nur ne Liste brauchst, nimm evtl. TObjectList.

Willst du eine verschachtelte Struktur usw. fuehren, und eventuell sogar speichern, dann nimm ne Collection. Jede published Property einer Klasse, die als Grundlage fuer eine Collection dient, wird dann abgespeichert; wenn du willst auch binaer und wenn du ganz lustig bist auch weiter codiert. Guck dir einfach die einschlaegigen Threads an.

Beide Listen gibts aber auch als Templates; d.h. dass du mit ein bisschen Compiler-Magic eine schoene typisierte Liste hast, und dir (v.a. bei TObjectList) das ewige casten von Objekten vermeiden kannst. Die Codelib hilft dir in dem Fall weiter

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz