Ich hab euch mal einen Testcode geschrieben, ich hoffe, Schuld ist ein PB-Problem und nicht meine eigene Dummheit...
Es geht darum, dass ImageGadget mir #PB_Any anscheinend nicht die korrekte ID zurückgibt.
Code: Alles auswählen
Structure window
window_id.l
bgimage_id.l
EndStructure
Global Image0.l
Image0 = CreateImage(0, 40, 40)
Procedure.l Pix_Window(x.l, y.l)
value.window\window_id = OpenWindow(#PB_Any, 200, 200, 40, 40, "", #PB_Window_BorderLess)
If value\window_id
If CreateGadgetList(WindowID(value\window_id))
value\bgimage_id = ImageGadget(#PB_Any, 0, 0, 40, 40, Image0)
ProcedureReturn @value
EndIf
EndIf
EndProcedure
Procedure ToggleState(gadget.l)
If GetGadgetState(gadget.l) <> 0
SetGadgetState(gadget.l, 0)
Debug "ImageGadget deaktiviert mit der vom EventGadget gelieferten ID"
Else
SetGadgetState(gadget.l, Image0)
Debug "ImageGadget aktiviert mit der vom EventGadget gelieferten ID"
EndIf
EndProcedure
*window.window = Pix_Window(x, y)
Debug "Von ImageGadget() gelieferte ID: "+Str(*window\bgimage_id)
Repeat
;{ Event Zeugs
EventID = WindowEvent()
If EventID = #PB_Event_Gadget
EventG = EventGadget()
Debug "Von EventGadget() gelieferte ID: "+Str(EventG)
ToggleState(EventG)
EndIf
Delay(1)
Until EventID = #PB_Event_CloseWindow
Simon