Seite 1 von 1

DeleteElement()

Verfasst: 31.01.2019 16:02
von darius676
Guten Tag erstmal,
vll. ist die Frage schon behandelt worden, ich finde im Forum leider nix konkretes:
Wird wenn mit DeleteElement() ein Element aus der Liste gelöscht wird der von dem Element beanspruchte Speicher (Sprites,Sound…) freigegeben.
mit ClearList() funktioniert die lt. Anleitung, bei DeleteElement() ist das nicht so klar beschrieben?

vielen Dank,

Walter

Re: DeleteElement()

Verfasst: 31.01.2019 16:31
von Mijikai
DeleteElement() gibt nur den Speicher des Elements (Struktur des Eintrags) frei aber
keine enthaltenen Bilder, Sprites usw.

Beispiel:

Code: Alles auswählen

;PureBasic v.5.62

EnableExplicit

Structure DUMMY
  *ptr
  msg.s  
  image.i
EndStructure

Global NewList dummy.DUMMY()
Global *memory.String
Global img.i

If AddElement(dummy())
  dummy()\msg = "Hallo Welt!"
  dummy()\ptr = @dummy()\msg
  dummy()\image = CreateImage(#PB_Any,400,400)
  *memory = @dummy()
  img = dummy()\image
EndIf

;DeleteElement(dummy())
;ClearList(dummy())

Debug *memory\s
Debug IsImage(img)

End

Re: DeleteElement()

Verfasst: 31.01.2019 16:31
von STARGÅTE
Der Speicher des Elements selbst wird freigegeben ABER alles was im Element hinterlegt wurde z.b. Sprites oder Sounds werden NICHT freigegeben!

Re: DeleteElement()

Verfasst: 01.02.2019 00:52
von darius676
Danke für die rasche Hilfe!
LG