Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: TObjectlist und der Seitenwechsel

  Alt 29. Mai 2019, 20:01
Hi zusammen
Ich behaupte mal: Hoika hat recht. Das Embarcadero Wiki zu TObjectlist.Ownsobject:
Zitat:
Ermittelt oder setzt den Eigentümer des Objekts.

OwnsObjects ermittelt oder legt fest, ob die Liste Eigentümer der Objekte in der Liste ist. Wenn die Liste zum Zeitpunkt des Entfernens des Eintragsobjekts aus der Liste Eigentümer der Einträge ist, wird das Eintragsobjekt freigegeben. Create initialisiert diese Eigenschaft.
Es stellt sich jetzt halt die Frage, was der fett formatierte Satz nun wirklich heisst. Tatsache ist, dass bei einem Delete eines bestimmten Eintrags dieser aus der Liste entfernt wird, und zwar unabhängig davon, ob OwnsObjects nun False oder True ist. Nun suggeriert aber der bewusste Satz, dass bei True das Eintragsobjekt freigegeben wird, also ein "Eintragsobject.Free" durchgeführt wird.
Technisch wäre dies wohl möglich, wenn die Objectlist alle damit zusammenhängenden Propertys und deren Felder aktualisieren würde. Nebst dem Count-Property würde dies wohl auch Capacity betreffen. Würde... Aber:
An dieser Stelle wollte ich eigentlich die Stelle aus dem Embarcadero Wiki zitieren, die ich heute morgen gelesen hatte, jetzt aber nicht mehr finden kann. Da wurde darauf hingewiesen, dass man das Ereignis OnNotify verwenden solle, um das Objekt nicht nur aus der Liste zu entfernen, sondern wirklich freizugeben/zu zerstören. Gefunden habe ich stattdessen:

Mein Fazit: Beide, hoika sowohl peterbelow haben recht - die nicht generische Liste verlangt einfach etwas mehr Handarbeit.
Wie das nun wirklich ist, kann nur ein Studium / durchsteppen durch die Sourcen geben.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat