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... :wink:

Re: Image angeblich nicht initialisiert?

Verfasst: 28.01.2012 12:31
von ts-soft
rolaf hat geschrieben:Gibbet bei mir nich... :wink:
Gibbet bei mir, dann gab es das aber mal bei Dir :mrgreen:
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 :mrgreen:
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. :lol:

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.