Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi TInterfacedPersistent und Referenzzähler (https://www.delphipraxis.net/203601-tinterfacedpersistent-und-referenzzaehler.html)

venice2 4. Mär 2020 01:40

TInterfacedPersistent und Referenzzähler
 
Gibt es bei TInterfacedPersistent Referenzzähler?
Wenn nicht muss ich dann auf TInterfacedObject umsteigen um Speicherlecks zu verhindern obwohl ich eigentlich keine Objecte benötige?

Lemmy 4. Mär 2020 04:30

AW: TInterfacedPersistent und Referenzzähler
 
Bei TInterfacedPersistent ist der Referenzzähler (im Gegensatz zu TInterfacedObject) abgeschaltet. Wenn Du keine Objektinstanzen benötigst, wäre TInterfacedObject dann sicherlich die bessere Wahl.

venice2 4. Mär 2020 05:40

AW: TInterfacedPersistent und Referenzzähler
 
Zitat:

Zitat von Lemmy (Beitrag 1458871)
Bei TInterfacedPersistent ist der Referenzzähler (im Gegensatz zu TInterfacedObject) abgeschaltet. Wenn Du keine Objektinstanzen benötigst, wäre TInterfacedObject dann sicherlich die bessere Wahl.

Habe das mal gegengeprüft.

Es ist nur so wenn ich TInterfacedObject verwende sind meine Ressourcen Bilder, Window und was dazugehört schon gelöscht, freigegeben.
Den einzigen vorteil den ich dann habe. Ich kann sehen beim Debuggen ob das Object entladen wurde.
Von daher lass ich es so wie es ist bringt keinen Mehrwert. Danke

Incocnito 5. Mär 2020 07:47

AW: TInterfacedPersistent und Referenzzähler
 
Zitat:

Zitat von Lemmy (Beitrag 1458871)
... Wenn Du keine Objektinstanzen benötigst, wäre TInterfacedObject dann sicherlich die bessere Wahl.

Macht es Probleme, wenn ich eine Klasse von TInterfacedObject ableite
Delphi-Quellcode:
type TIrgendwas = class(TInterfacedObject, IIrgendeinInterface) ...

und davon dann Objekte erstelle?
Warum? Was läuft dann schief? Womit muss ich rechnen?

MfG
Incocnito

DeddyH 5. Mär 2020 07:57

AW: TInterfacedPersistent und Referenzzähler
 
Wenn Du TInterfacedObject verwendest, solltest Du genau einmal auf den Typ der implementierenden Klasse zugreifen, nämlich beim Erzeugen. Danach solltest Du peinlich genau darauf achten, die Instanz nur noch über das Interface anzusprechen, da es sonst zu sehr wirren Fehlern kommen kann, die nur sehr schwer zu finden sind.

stahli 5. Mär 2020 08:02

AW: TInterfacedPersistent und Referenzzähler
 
@Incocnito
Ich hatte mal einen Thread zu Interfaces erstellt und einige Infos zusammengefasst: https://www.delphipraxis.net/183702-...-factorys.html
Vielleicht ist das ja hilfreich...


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 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