AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Eleganter Ersatz für TList und Objekte unter FMX-Platformen?
Thema durchsuchen
Ansicht
Themen-Optionen

Eleganter Ersatz für TList und Objekte unter FMX-Platformen?

Ein Thema von Harry Stahl · begonnen am 30. Dez 2015 · letzter Beitrag vom 1. Jan 2016
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: Eleganter Ersatz für TList und Objekte unter FMX-Platformen?

  Alt 30. Dez 2015, 23:10
TObjectList<T> hat eine Property OwnsObjects - steht diese auf true, kümmerst sich die Objektliste um die Freigabe der zugehörigen Objekte - steht sie auf false, musst du dich selbst drum kümmern. Verwendest du diese Objekte also an anderer Stelle wieder, sollte OwnsObjects auf false stehen, sonst werdne beim Clear alle Items ge"free"t.
Die werden eben nicht ge"free"t sondern ge"DisposeOf"t und das ist gerade unter ARC wichtig zu wissen.

Kleines Beispiel:
Delphi-Quellcode:
var
  a,b : TFoo;

a := TFoo.Create();
b := a;
a.Free();
Ohne ARC haben wir in b jetzt einen dangeling pointer (zeigt auf eine nicht mehr vorhandene Instanz).
Mit ARC haben wir in b eine Referenz auf eine lebende Instanz.
Delphi-Quellcode:
var
  a,b : TFoo;

a := TFoo.Create();
b := a;
a.DisposeOf();
Ohne ARC haben wir in b jetzt einen dangeling pointer (zeigt auf eine nicht mehr vorhandene Instanz).
Mit ARC haben wir in b eine Referenz auf eine (halbwegs) lebende Instanz, die allerdings den Status Delphi-Referenz durchsuchenTObject.Disposed hat (und somit ein vergleichbarer Status wie ohne ARC).
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (30. Dez 2015 um 23:15 Uhr)
  Mit Zitat antworten Zitat
 


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 08:48 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