Zum Inhalt springen

Delphi: Muss ein Image im Array mit free freigegeben werden?


Chrischn2

Empfohlene Beiträge

Hallo,

ich erstelle in einem Array für TImages wärend des Programmablaufs mehrere Images. Werden diese Images nicht mehr gebraucht, dann muss man sie ja bekanntlicherweise mit free wieder freigeben, weil sonst Arbeitsspeicher verbraucht wird.

Mit dem Befehl

SetLength(Dyn_Image, 0); kann man die Anzahl der Images im Array wieder auf 0 setzen.

Muss man die Images vorher trotzdem mit free freigeben?

Was in der Delphi Hilfe steht ist mir nicht ganz eindeutig klar :

Bei einer langen String- oder einer dynamischen Array-Variable weist SetLength dem mit S referenzierten String oder Array die angegebene Länge zu. Dabei bleiben die Zeichen im String oder die Elemente im Array erhalten, jedoch ist der Inhalt des neu zugewiesenen Speicherbereichs nicht definiert. Ist nicht genug Speicher für die Variable vorhanden, wird eine EOutOfMemory-Exception ausgelöst. Nach dem Aufruf von SetLength ist sichergestellt, daß S auf einen eindeutigen String oder ein eindeutiges Array zeigt (d. h. dessen Referenzzähler den Wert Eins hat).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Chrischn2

Muss man die Images vorher trotzdem mit free freigeben?

Was in der Delphi Hilfe steht ist mir nicht ganz eindeutig klar :

Ja, im Arrray stehen ja nur Zeiger auf den Speicherbereich in dem das TImage Objekt abgelegt ist. Diese Pointer werden dadurch zwar nicht mehr zugänglich gemacht, der Speicher der hintendranhängt bleibt aber unverändert.

Also erst eine Schleife über das dyn. Array und alles freigeben, dann (u.U.) die Länge auf 0 setzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...