![]() |
AW: Speicherleaks TMemoryStream in einem Objekt
Zitat:
|
AW: Speicherleaks TMemoryStream in einem Objekt
Weil Pascal/Delphi "objektorientiert" ist :wink:
|
AW: Speicherleaks TMemoryStream in einem Objekt
Ich dachte interfaces/traits/behaviors gehören zum OO Baukasten dazu.
|
AW: Speicherleaks TMemoryStream in einem Objekt
Zitat:
Zitat:
|
AW: Speicherleaks TMemoryStream in einem Objekt
Zitat:
Im Falle von tDatabase wäre es eine NICHT Arc implementierung, aber so hätte man trotzdem noch Möglichkeiten was Auslagerung in DLLs und Reduzierung von Abhängigkeiten betrifft. |
AW: Speicherleaks TMemoryStream in einem Objekt
Das Problem ist halt, dass man nicht-referenzgezählte Objekt-Instanzen und Interfaces niemals gleichzeitig auf das "selbe" Objekt haben darf/sollte.
Bzw. bei TComponent ist es "standardmäßig" so, dass optional anhängbare Interfaces nicht referenzgezählt sind. Jene sollte/darf man somit auch immer nur kurz benutzen und die Interface-Instanz sofort wieder freigeben. Da hier ausschließich das Objekt die Speicherverwaltung übernimmt, also Free, der Owner, sowie auch der Parent (hat sich Delphi leider von der GDI abgeguckt). Die Interface-Refrenz wird bei TComponent-Nachfahren also "ungültig", wenn das Objekt freigegeben wird. Ein NIL zuweisen geht danach dann auch nicht mehr, sowie wenn die Variable aus dem Scope rausläuft, da es versuchen würde IInterface._Release auszuführen, was aber nicht mehr ginge. Hier sollte man dann am Besten mit [Weak]-Referenzen arbeiten (was aber fast niemand tut). Hätte man dagegen ein referenzgezähltes Interface, dann würden Jene das Objekt freigeben und die Objekt-Referenzen wären plötzlich alle ungültig. Zusammen mit ARC wäre so ein Mischbetrieb aber möglich. (wobei ich dennoch froh bin, dass ARC wieder gestorben ist, weil es andere konzeptionelle Nachteile hatte) |
AW: Speicherleaks TMemoryStream in einem Objekt
Zitat:
|
AW: Speicherleaks TMemoryStream in einem Objekt
Hallo Zusammen,
ich nutze Delphi seit ca. 15 Jahren hobbymäßig... Aber ab #Post19 brauche ich ein Wörterbuch :oops: Ich werde in den nächsten Wochen Zuhause die Programmgruppe neu aufbauen und mir das Wörterbuch deneben legen. :lol: Vielen Dank für die vielen Anregungen, ich werde berichten! LG Patrick |
AW: Speicherleaks TMemoryStream in einem Objekt
Zu Interfaces habe ich mal ein paar Infos zusammengestellt:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 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 by Thomas Breitkreuz