Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bilder laden ohne anzuzeigen - keine Größen vorgabe (https://www.delphipraxis.net/161054-bilder-laden-ohne-anzuzeigen-keine-groessen-vorgabe.html)

himitsu 15. Jun 2011 09:50

AW: Bilder laden ohne anzuzeigen - keine Größen vorgabe
 
Interfaces, dyn. Arrays und Strings unterliegen einer Referenzzählung, welche es dann automatisch freigibt.
Records und static Arrays liegen direkt in der Variable und werden zusammen mit dieser entsorgt.

CCRDude 15. Jun 2011 10:34

AW: Bilder laden ohne anzuzeigen - keine Größen vorgabe
 
Danke :)

Da war doch mal so ein älterer Bug (Delphi 2006 evtl.? Wo es die Ausnahme gab, daß die Referenzzählung im initialization-Teil von Units nicht korrekt funktionierte?) bin ich da etwas sensibel. Gut zu wissen daß ich nicht falsch lag :)

himitsu 15. Jun 2011 11:11

AW: Bilder laden ohne anzuzeigen - keine Größen vorgabe
 
Der Delphicompiler umgibt die Funktions/Procedur/Methoden-Rümpfe mit einem Try-Finally, wenn derartige Typen in den lokalen Variablen, bzw. als Parameter (außer bei Const und Var) liegen.

Bjoerk 16. Jun 2011 12:18

AW: Bilder laden ohne anzuzeigen - keine Größen vorgabe
 
@CCRDude, Deep-Sea, himitsu.

Da ich SetLength(Array, N) als GetMem(Array, N*SizeOf(..)) verstehe, war für mich SetLength(Array, 0) - also FreeMem(Array, N*SizeOf(..)) - folgerichtig.

Daß Letzteres Delphi bei lokalen Variablen für uns erledigt, war mir nicht bewusst.

Danke für den Hinweis.:thumb:

himitsu 16. Jun 2011 12:58

AW: Bilder laden ohne anzuzeigen - keine Größen vorgabe
 
Zitat:

Zitat von Bjoerk (Beitrag 1106718)
Daß Letzteres Delphi bei lokalen Variablen für uns erledigt,

Aber nur für gemanagte Typen (String, dyn. Array und Interface).
Deren Variablen werden automtisch initialisiert (ist für die weitere Behandlung notwendig, da man jasonst nie weiß ob etwas drinnen wäre)
und werden dann auch automatisch freigegeben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:49 Uhr.
Seite 2 von 2     12   

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