Nicht jedesmal das Image mit CatchImage überschreiben.
Einmal am Anfang alle Bilder einmal übernehmen und dann nach Zufall zum ImageGadget zuweisen
Code: Alles auswählen
;-TOP
#ProgramTitle = "Main Window"
#ProgramVersion = "v1.01.2"
Enumeration Windows
  #Main
EndEnumeration
Enumeration MenuBar
  #MainMenu
EndEnumeration
Enumeration MenuItems
  #MainMenuAbout
  #MainMenuExit
EndEnumeration
Enumeration Gadgets
  #MainImage
EndEnumeration
Enumeration StatusBar
  #MainStatusBar
EndEnumeration
; ----
UseJPEGImageDecoder()
Global Dim MyImage(6)
#Demo = 1
Procedure InitImages()
  CompilerIf Not #Demo
    MyImage(0) = CatchImage(#PB_Any, ?Image_flieg)
    MyImage(1) = CatchImage(#PB_Any, ?Image_WF_1)
    MyImage(2) = CatchImage(#PB_Any, ?Image_WF_2)
    MyImage(3) = CatchImage(#PB_Any, ?Image_WF_3)
    MyImage(4) = CatchImage(#PB_Any, ?Image_WF_4)
    MyImage(5) = CatchImage(#PB_Any, ?Image_WF_5)
    MyImage(6) = CatchImage(#PB_Any, ?Image_WF_6)
  CompilerElse
    MyImage(0) = CreateImage(#PB_Any, 200, 200, 32, RGB(255,255,255))
    MyImage(1) = CreateImage(#PB_Any, 200, 200, 32, Random($FFFFFF, $404040))
    MyImage(2) = CreateImage(#PB_Any, 200, 200, 32, Random($FFFFFF, $404040))
    MyImage(3) = CreateImage(#PB_Any, 200, 200, 32, Random($FFFFFF, $404040))
    MyImage(4) = CreateImage(#PB_Any, 200, 200, 32, Random($FFFFFF, $404040))
    MyImage(5) = CreateImage(#PB_Any, 200, 200, 32, Random($FFFFFF, $404040))
    MyImage(6) = CreateImage(#PB_Any, 200, 200, 32, Random($FFFFFF, $404040))
  CompilerEndIf
EndProcedure
; ----
Procedure UpdateWindow()
  Protected dx, dy
  dx = WindowWidth(#Main)
  dy = WindowHeight(#Main) - StatusBarHeight(#MainStatusBar) - MenuHeight()
  ; Resize gadgets
EndProcedure
Procedure Main()
  Protected dx, dy
  
  #MainStyle = #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget
  
  If OpenWindow(#Main, #PB_Ignore, #PB_Ignore, 800, 600, #ProgramTitle , #MainStyle)
    ; Menu
    CreateMenu(#MainMenu, WindowID(#Main))
    MenuTitle("&File")
    CompilerIf #PB_Compiler_OS = #PB_OS_MacOS
      MenuItem(#PB_Menu_About, "")
    CompilerElse
      MenuItem(#MainMenuAbout, "About")
    CompilerEndIf
    ; Menu File Items
    
    CompilerIf Not #PB_Compiler_OS = #PB_OS_MacOS
      MenuBar()
      MenuItem(#MainMenuExit, "E&xit")
    CompilerEndIf
    
    ; StatusBar
    CreateStatusBar(#MainStatusBar, WindowID(#Main))
    AddStatusBarField(#PB_Ignore)
    
    ; Gadgets
    dx = WindowWidth(#Main)
    dy = WindowHeight(#Main) - StatusBarHeight(#MainStatusBar) - MenuHeight()
    ImageGadget(#MainImage, 10, 10, 200, 200, 0)
    
    ; Bind Events
    BindEvent(#PB_Event_SizeWindow, @UpdateWindow(), #Main)
    
    ; Init Program
    InitImages()
    
    AddWindowTimer(#Main, 1, 1000)
    
    ; Event Loop
    Repeat
      Select WaitWindowEvent()
        Case #PB_Event_CloseWindow
          Select EventWindow()
            Case #Main
              Break
              
          EndSelect
          
        Case #PB_Event_Menu
          Select EventMenu()
            CompilerIf #PB_Compiler_OS = #PB_OS_MacOS   
              Case #PB_Menu_About
                PostEvent(#PB_Event_Menu, #Main, #MainMenuAbout)
                
              Case #PB_Menu_Preferences
                
              Case #PB_Menu_Quit
                PostEvent(#PB_Event_CloseWindow, #Main, #Null)
                
            CompilerEndIf
            
          Case #MainMenuAbout
            MessageRequester("About", #ProgramTitle + #LF$ + #ProgramVersion, #PB_MessageRequester_Info)
              
          Case #MainMenuExit
            PostEvent(#PB_Event_CloseWindow, #Main, #Null)
            
          EndSelect
          
        Case #PB_Event_Gadget
          Select EventGadget()
              
          EndSelect
          
        Case #PB_Event_Timer
          Select EventTimer()
            Case 1
              nummer = Random(6)
              SetGadgetState(#MainImage, ImageID(MyImage(nummer)))
              StatusBarText(#MainStatusBar, 0, "Nummer: " + nummer)
          EndSelect
          
      EndSelect
    ForEver
    
  EndIf
  
EndProcedure : Main()
CompilerIf Not #Demo
  
  DataSection
    Image_WF_1:
    IncludeBinary "/Users/mike/Documents/PureBasic/JPG/WF_1.jpg"
    Image_WF_2:
    IncludeBinary "/Users/mike/Documents/PureBasic/JPG/WF_2.jpg"
    Image_WF_3:
    IncludeBinary "/Users/mike/Documents/PureBasic/JPG/WF_3.jpg"
    Image_WF_4:
    IncludeBinary "/Users/mike/Documents/PureBasic/JPG/WF_4.jpg"
    Image_WF_5:
    IncludeBinary "/Users/mike/Documents/PureBasic/JPG/WF_5.jpg"
    Image_WF_6:   
    IncludeBinary "/Users/mike/Documents/PureBasic/JPG/WF_6.jpg"
    Image_flieg:
    IncludeBinary "/Users/mike/Documents/PureBasic/JPG/Wuerfel_ohne.jpg"
  EndDataSection
  
CompilerEndIf