After some testing, I have found that my past statement about it not being possible is not true. You have to keep track of which buttons are being clicked and reset them all in the program every time one is clicked. Here is an example:
Strict Global Window:TGadget = CreateWindow("Test",100,100,640,480) Global Panel:TGadget = CreatePanel(0,0,640,480,Window) Global Button1:TGadget = CreateButton("Test 1",10,10,80,10,Panel,BUTTON_RADIO) Global Button2:TGadget = CreateButton("Test 2",10,25,80,10,Panel,BUTTON_RADIO) Global Button3:Tgadget = CreateButton("Test 3",10,40,80,10,Panel,BUTTON_RADIO) Global Selected:Int = 0 'Keep track of which buttons are selected here. AddHook EmitEventHook,MyHook Repeat WaitEvent() Forever Function MyHook:Object(id:Int,data:Object,context:Object) Local event:TEvent = TEvent(data) Select event.id Case EVENT_WINDOWCLOSE End Case EVENT_GADGETACTION Select event.source Case Button1 If Selected & 1 'if button is selected then clear bit, else set bit Selected = Selected & 6 Else Selected = Selected | 1 End If Case Button2 If Selected & 2 Selected = Selected & 5 Else Selected = Selected | 2 End If Case Button3 If Selected & 4 Selected = Selected & 3 Else Selected = Selected | 4 End If End Select 'Reset all the buttons SetButtonState(Button1,Selected & 1) SetButtonState(Button2,(Selected & 2) > 0) SetButtonState(Button3,(Selected & 4) > 0) Return Null End Select Return data End Function