Seite 1 von 1

ImageGadget und Speicherung der Grafik

Verfasst: 23.04.2012 23:23
von Armkrie
Hallo Gemeinde,

ich habe hier ein kleines Demoprogramm geschrieben.

Es wird ein Bild erstellt und einem ImageGadget zugeweisen.
Danach wird dieses Bild gelöscht um das Erstellen eines neuen Bildes
mit der gleichen Nummerer zu ermöglichen.

Dieses Demoprogramm funktioniert ohne Probleme.
Das Programm welches ich schreiben möchte erzeugt aber wesentlich größere
Grafiken und der Zeitraum zwischen dem Anzeigen der Bilder ist auch länger.

Deshalb hier zu meiner Frage.

Weis jemand ob es über einem längeren Zeitraum Probleme mit einem ImageGadget gibt,
wenn die übergebene Grafik wieder gelöscht wird?

Speichert das ImageGadget eine Kopie der Grafik oder wird das Orginal noch für
irgend etwas benötigt?

Für nächere Informationen wäre ich sehr Dankbar.

Code: Alles auswählen

If OpenWindow(0, 100, 100, 500, 500, "Test")
  ImageGadget(0, 50, 50, 400, 400, 0)
EndIf

AddWindowTimer(0, 1000, 300)
Farbe = 0

Repeat
  EventID = WaitWindowEvent()

  If EventID = #PB_Event_Timer And EventTimer() = 1000
    CreateImage(0, 400, 400)

    Farbe + 10
    If Farbe > $FFFFFF : Farbe = 0 : EndIf

    If StartDrawing(ImageOutput(0))
      FillArea(0, 0, -1, Farbe)
      StopDrawing()
    EndIf

    SetGadgetState(0, ImageID(0))
    FreeImage(0)
  EndIf

Until EventID = #PB_Event_CloseWindow

RemoveWindowTimer(0, 1000)
End

Re: ImageGadget und Speicherung der Grafik

Verfasst: 23.04.2012 23:32
von STARGÅTE
Ja, das ImageGadget (genauso wie zB MenuItems, Canvas, ListIcon, usw.) kopieren alle die übergebene Grafik in ihren eigenen Speicher/Struktur. Das Image welches du übergeben hast, kanst du also sofort wieder freigeben.

Re: ImageGadget und Speicherung der Grafik

Verfasst: 25.04.2012 21:01
von Armkrie
Danke für die schnelle Antwort.

Habe mir zwar schon so etwas gedacht, war mir aber nicht sicher.

Gruß Armkrie