Code: Select all
OpenWindow(0, 0, 0, 270, 120, "ComboBoxGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ComboBoxGadget(0, 10, 10, 250, 21)
AddGadgetItem(0, -1, "Click to select")
SetGadgetState(0, 0)
Procedure WindowCallback(WindowHandle.I, Message.I, WParam.I, LParam.I)
If LParam = GadgetID(0) ; CRASHES PROGRAM WHEN WINDOW CLOSES!
If Message = #WM_COMMAND
Select WParam >> 16 & $FFFF
Case #CBN_DROPDOWN
ClearGadgetItems(0)
AddGadgetItem(0, -1, "Click to select")
For a = 1 To 5
AddGadgetItem(0, -1, Str(Random(100)))
Next
EndSelect
EndIf
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
SetWindowCallback(@WindowCallback(), 0)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Code: Select all
OpenWindow(0, 0, 0, 270, 120, "ComboBoxGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
Global NoCrash = ComboBoxGadget(0, 10, 10, 250, 21)
AddGadgetItem(0, -1, "Click to select")
SetGadgetState(0, 0)
Procedure WindowCallback(WindowHandle.I, Message.I, WParam.I, LParam.I)
If LParam = NoCrash
If Message = #WM_COMMAND
Select WParam >> 16 & $FFFF
Case #CBN_DROPDOWN
ClearGadgetItems(0)
AddGadgetItem(0, -1, "Click to select")
For a = 1 To 5
AddGadgetItem(0, -1, Str(Random(100)))
Next
EndSelect
EndIf
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
SetWindowCallback(@WindowCallback(), 0)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow