AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Multi-ObjectLists (Objekte mehrmals in einer Liste)

Multi-ObjectLists (Objekte mehrmals in einer Liste)

Ein Thema von himitsu · begonnen am 12. Jul 2010 · letzter Beitrag vom 12. Jul 2010
Antwort Antwort
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

AW: Multi-ObjectLists (Objekte mehrmals in einer Liste)

  Alt 12. Jul 2010, 10:40
Zumindest bei der TMultiObjectList<T> musst du noch Remove überschreiben/überladen. Imho müsste über diese Methode jede Referenz aus der Liste gelöscht werden und nicht nur die erste gefundene.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#2

AW: Multi-ObjectLists (Objekte mehrmals in einer Liste)

  Alt 12. Jul 2010, 10:59
Zumindest bei der TMultiObjectList<T> musst du noch Remove überschreiben/überladen. Imho müsste über diese Methode jede Referenz aus der Liste gelöscht werden und nicht nur die erste gefundene.
Hmmm joar, ist soeine Sache ... eigentlich wollte ich nur das Löschverhalten beeinflussen und nicht den Aufbau der Listen.

Normaler Weise entfernt Remove doch nur den ersten Fund aus der Liste
und nicht alle Vorkommen ... aber die normale (generische) Objektliste gibt dennoch das Objekt frei, selbst wenn es nochmals in der Liste steht.

So jetzt besser?
RemoveAll(Value: T) .
oder wäre ein Remove(Value: T; RemoveAll: Boolean = false) besser?

[edit]
Hab nun Beides verbaut.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (12. Jul 2010 um 11:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: Multi-ObjectLists (Objekte mehrmals in einer Liste)

  Alt 12. Jul 2010, 11:17
Hab nun Beides verbaut.
Solltest noch den Parameter RemoveAll in der Remove Methode berücksichtigen.

Edit: Evtl wäre es auch sinnig, die Eigenschaft Duplicates vom Typ
TDuplicates = (dupIgnore, dupAccept, dupError); einzubauen (so wie in TStringList z.B.)
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (12. Jul 2010 um 11:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#4

AW: Multi-ObjectLists (Objekte mehrmals in einer Liste)

  Alt 12. Jul 2010, 11:57
Solltest noch den Parameter RemoveAll in der Remove Methode berücksichtigen.
kümmer mich gleich drum (blödes Copy&Paste)

Edit: Evtl wäre es auch sinnig, die Eigenschaft Duplicates vom Typ
TDuplicates = (dupIgnore, dupAccept, dupError); einzubauen (so wie in TStringList z.B.)
Ich war erst auf die Idee gekommen das OwnerObjects zu verändern, von einem Boolean zu einem Enum, mit mehreren Auswahlmöglichkeiten, aber das ließ sich nachträglich nicht gut ändern.

Wobei, wie schon erwähnt, diese Lieste ja eigentlich mehrere gleiche Objekte enthalten soll/darf, da wäre es doch kontraproduktiv, wenn man dieses jetzt auch noch verhindert/verbietet?
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (12. Jul 2010 um 12:00 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:23 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