Seite 1 von 1

Image nicht initialisiert

Verfasst: 10.06.2023 13:31
von cyerangle
Hallo zusammen,
kaum ist der 1. Fehler behoben kommt hier schon eine neue Meldung mit der ich nichts anfangen kann.
Hier der Code:

Code: Alles auswählen

Enumeration Bilder
  #Bild_Hauptfenster_1
  #Bild_Hauptfenster_2
EndEnumeration
Enumeration Fenster
  #Hauptfenster
EndEnumeration

LoadImage(#Bild_Hauptfenster_1, "/Users/mike/Documents/PureBasic/pf_l.jpg")   ;;;   nach links und rechts zeig. Pfeil laden
;LoadImage(#Bild_Hauptfenster_2, "/Users/mike/Documents/PureBasic/pf_r.jpg")


HauptFenster_1.i
Image_28.i

HauptFenst_1 = OpenWindow(#Hauptfenster , 0, 0, 808, 688, "Shock out", #PB_Window_SystemMenu)
SetWindowColor(#Hauptfenster, RGB(254,255,0))
Image_28 = ImageGadget(#PB_Any, 296, 96, 88, 32, ImageID(#Bild_Hauptfenster_1))  ;;;  Pfeil < zeigen

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
in de vorletzten Zeile sagt er mir > das angegebene Imge ist nicht initialisiert <
warum nicht

Re: Image nicht initialisiert

Verfasst: 10.06.2023 13:45
von mk-soft
1. UseJPEGImageDecoder() fehlt
2. Bei Linux muss die gross klein Schreibung beachtet werden.
3. LoadImage das Ergebnis prüfen.
4. Im Programm für eigene Dateien niemals feste Pfade verwenden

Code: Alles auswählen

UseJPEGImageDecoder()

Enumeration Bilder
  #Bild_Hauptfenster_1
  #Bild_Hauptfenster_2
EndEnumeration
Enumeration Fenster
  #Hauptfenster
EndEnumeration

Define file_image.s = GetUserDirectory(#PB_Directory_Documents) + "PureBasic/pf_l.jpg"
If Not LoadImage(file_image)   ;;;   nach links und rechts zeig. Pfeil laden
  Debug "Image nicht gefunden"
  CallDebugger
EndIf

;LoadImage(#Bild_Hauptfenster_2, "/Users/mike/Documents/PureBasic/pf_r.jpg")


HauptFenster_1.i
Image_28.i

HauptFenst_1 = OpenWindow(#Hauptfenster , 0, 0, 808, 688, "Shock out", #PB_Window_SystemMenu)
SetWindowColor(#Hauptfenster, RGB(254,255,0))
Image_28 = ImageGadget(#PB_Any, 296, 96, 88, 32, ImageID(#Bild_Hauptfenster_1))  ;;;  Pfeil < zeigen

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

Re: Image nicht initialisiert

Verfasst: 10.06.2023 13:55
von mk-soft
Oder die Bilder im Programm mitliefern

Code: Alles auswählen

UseJPEGImageDecoder()

Enumeration Bilder
  #Bild_Hauptfenster_1
  #Bild_Hauptfenster_2
EndEnumeration
Enumeration Fenster
  #Hauptfenster
EndEnumeration

CatchImage(#Bild_Hauptfenster_1, ?Image_Pfeil_Link)
CatchImage(#Bild_Hauptfenster_2, ?Image_Pfeil_Rechts)


HauptFenster_1.i
Image_28.i

HauptFenst_1 = OpenWindow(#Hauptfenster , 0, 0, 808, 688, "Shock out", #PB_Window_SystemMenu)
SetWindowColor(#Hauptfenster, RGB(254,255,0))
Image_28 = ImageGadget(#PB_Any, 296, 96, 88, 32, ImageID(#Bild_Hauptfenster_1))  ;;;  Pfeil < zeigen

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

End

DataSection
  Image_Pfeil_Link:
  IncludeBinary "/Users/mike/Documents/PureBasic/pf_l.jpg"
  Image_Pfeil_Rechts:
  IncludeBinary "/Users/mike/Documents/PureBasic/pf_r.jpg"
EndDataSection

Re: Image nicht initialisiert

Verfasst: 10.06.2023 14:19
von cyerangle
diese Fehlermeldungen treten erst auf seit ich PB 6.02 installiert habe, kann denn dort derr Fehler liegen??
Die bilder im Programm mitliefer ist zwar eine Möglichkeit aber dann müsste ich 10 Bilder mitliefern, ddie ich für mein Spiel benötige. Aus dem Grund
wurde wohl auch im meinem PB Buch davor gewarnt das Programm mit Bildern aufzublähen.
Die Programmzeile wo das Prg. jetzt > Image nicht initialisiert < sagt steht in meinem Prgrammtext bei PB 6.01 und funktioniert.

Re: Image nicht initialisiert

Verfasst: 10.06.2023 14:45
von mk-soft
Teste diese mal.
Wenn es funktioniert, muss was an deinen Path zum bild mit stimmen
Wenn es nicht funktioniert, muss was an der installation von PB was nicht stimmen.

Code: Alles auswählen

;-TOP

UseJPEGImageDecoder()

Enumeration
  #Image1
  #Image2
EndEnumeration
  
Procedure UpdateWindow()
  Protected dx, dy
  dx = WindowWidth(0)
  dy = WindowHeight(0) - StatusBarHeight(0) - MenuHeight()
  ; Resize Gadgets
  CopyImage(#Image1, #Image2)
  ResizeImage(#Image2, dx - 20, dy - 20)
  ResizeGadget(0, 10, 10, dx - 20, dy - 20)
  SetGadgetState(0, ImageID(#Image2))
EndProcedure

Procedure InitProgram()
  Protected path.s
  path = #PB_Compiler_Home + "examples/3d/Data/Textures/" + "terrain_texture.jpg"
  
  If Not LoadImage(#Image1, path)
    MessageRequester("Error", "Load Image " + path)
    End
  EndIf
  
EndProcedure : InitProgram()

Procedure Main()
  Protected dx, dy
  
  #WinStyle = #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget
  
  If OpenWindow(0, #PB_Ignore, #PB_Ignore, 600, 400, "Test Window", #WinStyle)
    ; MenuBar
    CreateMenu(0, WindowID(0))
    MenuTitle("File")
    
    ; StatusBar
    CreateStatusBar(0, WindowID(0))
    AddStatusBarField(#PB_Ignore)
    
    ; Gadgets
    dx = WindowWidth(0)
    dy = WindowHeight(0) - StatusBarHeight(0) - MenuHeight()
    CopyImage(#Image1, #Image2)
    ResizeImage(#Image2, dx - 20, dy - 20)
    ImageGadget(0, 10, 10, dx - 20, dy - 20, ImageID(#Image2), #PB_Image_Border)
    
    ; Bind Events
    BindEvent(#PB_Event_SizeWindow, @UpdateWindow(), 0)
    
    ; Main Loop
    Repeat
      Select WaitWindowEvent()
        Case #PB_Event_CloseWindow
          Select EventWindow()
            Case 0
              Break
          EndSelect
          
        Case #PB_Event_Menu
          Select EventMenu()
            
          EndSelect
          
        Case #PB_Event_Gadget
          Select EventGadget()
              
          EndSelect
          
      EndSelect
    ForEver
    
  EndIf
  
EndProcedure : Main()

Re: Image nicht initialisiert

Verfasst: 11.06.2023 11:17
von cyerangle
Danke, Bild wird angezeigt, da muss ich mal schauen.