Seite 1 von 1
Image angeblich nicht initialisiert?
Verfasst: 28.01.2012 04:26
von Delle
Hallo,
warum meckert er beim Klick auf den Button rum, dass das Image bild2 nicht initialisiert ist?
Code: Alles auswählen
UseJPEGImageDecoder()
bild1=LoadImage(#PB_Any,"1.jpg")
bild2=LoadImage(#PB_Any,"2.jpg")
OpenWindow(0,0,0,200,350,"",#PB_Window_SystemMenu)
ButtonGadget(1000,10,10,128,20,"Wechsel")
bla1=ButtonImageGadget(#PB_Any,10,50,128,128,ImageID(bild1))
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadget()
Case 1000
SetGadgetAttribute(GadgetID(bla1),#PB_Button_Image,ImageID(bild2))
EndSelect
EndSelect
ForEver
Re: Image angeblich nicht initialisiert?
Verfasst: 28.01.2012 05:05
von Derren
Aha?
Ich bekomme eine ganz andere Fehlermeldung.
Nämlich, dass das Gadget nicht existiert.
GadgetID() ist da überflüssig (und falsch) wenn du mit #PB_Any arbeitest.
Nach dem Laden der Bilder solltest du trotzdem überprüfen, ob alles geklappt hat. Wenn dein Programm mal fertig ist, sagt dir der Debugger nicht mehr, dass da ein Bild fehlt, sondern dein Programm schmiert einfach ab, ohne dass du weißt was los ist.
Re: Image angeblich nicht initialisiert?
Verfasst: 28.01.2012 08:51
von rolaf
Delle hat geschrieben:warum meckert er beim Klick auf den Button rum, dass das Image bild2 nicht initialisiert ist?
Z.B weil Bild "1.jpg" und Bild "2.jpg" nicht existieren oder nicht da sind wo sich die Exe befindet, da du keinen Dateipfad angegeben hast. Zudem hat Derren recht, was soll denn GadgetID() da?
Re: Image angeblich nicht initialisiert?
Verfasst: 28.01.2012 12:01
von ts-soft
Code: Alles auswählen
EnableExplicit
UseJPEGImageDecoder()
Define bild1 = LoadImage(#PB_Any, #PB_Compiler_Home + "Examples\Sources\Data\clouds.jpg")
Define bild2 = LoadImage(#PB_Any, #PB_Compiler_Home + "Examples\Sources\Data\PureBasic.bmp")
OpenWindow(0, 0, 0, 200, 350, "", #PB_Window_SystemMenu)
ButtonGadget(0, 10, 10, 128, 20, "Wechsel")
Define bla1 = ButtonImageGadget(#PB_Any, 10, 50, 128, 128,ImageID(bild1))
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadget()
Case 0
SetGadgetAttribute(bla1, #PB_Button_Image, ImageID(bild2))
EndSelect
EndSelect
ForEver
Re: Image angeblich nicht initialisiert?
Verfasst: 28.01.2012 12:15
von rolaf
Code: Alles auswählen
Define bild1 = LoadImage(#PB_Any, #PB_Compiler_Home + "Examples\Sources\Data\clouds.jpg")
Gibbet bei mir nich...

Re: Image angeblich nicht initialisiert?
Verfasst: 28.01.2012 12:31
von ts-soft
rolaf hat geschrieben:Gibbet bei mir nich...

Gibbet bei mir, dann gab es das aber mal bei Dir
Ich installiere immer in den selben Ordner. (lösche nur das, wo zu löschen erforderlich ist)
Nimm den:
Code: Alles auswählen
Define bild1 = LoadImage(#PB_Any, #PB_Compiler_Home + "Examples\3D\Data\Textures\clouds.jpg")
Re: Image angeblich nicht initialisiert?
Verfasst: 28.01.2012 12:35
von rolaf
ts-soft hat geschrieben:Gibbet bei mir, dann gab es das aber mal bei Dir
Ich installiere immer in den selben Ordner. (lösche nur das, wo zu löschen erforderlich ist)
Ich installiere immer in einen frischen Ordner, weil Leichen brauch ich nur im Keller nicht in meiner bevorzugten Programiersprache.

Re: Image angeblich nicht initialisiert?
Verfasst: 28.01.2012 12:38
von ts-soft
Leichen im Examples-Ordner, der mangels Rechten an dem Ort gar nicht richtig funktioniert, sind mir so ziemlich wurscht.
Aber ich hab ja noch andere Dateien/Versionen in anderen Unterordnern, die ich weiterhin benötige. Deshalb lösche ich
dort nicht einfach alles.
Re: Image angeblich nicht initialisiert?
Verfasst: 28.01.2012 16:30
von Delle
Oh man... Bild 2.jpg war falsch benannt und in Wirklichkeit ein PNG

Kein Wunder...
Was ich aber nicht ganz verstehe: Wieso brauch ich für das Bild eine ImageID() und für das Gadget selber nicht?
Sowohl Bild als auch Gadget sind ja mittels #PB_Any erstellt worden...
Re: Image angeblich nicht initialisiert?
Verfasst: 28.01.2012 17:03
von ts-soft
Delle hat geschrieben:Was ich aber nicht ganz verstehe: Wieso brauch ich für das Bild eine ImageID() und für das Gadget selber nicht?
Da muß man in der Hilfe immer genau drauf achten!
Im Falle von Bildern kann man auch das handle von per API geladenen Bildern übergeben, das wäre mit der normalen ID nicht möglich.
So ähnlich verhält es sich auch bei anderen Funktionen.
// edit
oder einfacher gesagt, mit ImageID(#Image) erhälst du das Handle zum Bild. Die Funktion nutzt das Handle, damit man auch per
API geladene Bilder nutzen kann, mit dieser Funktion.