My code does work when the gadget state is -1 (no item selected), so when entering "hello", the icon changes fine without side effects.
My code does not work when an entry has been selected (e.g. TEST 3) before editing. The icon gets green, but the text will be selected automatically. So changing "TEST 3" to " TEST 99" by selecting "3" and entering "99" will result in "9" only.
Code: Select all
Dim iconhandle(2)
iconhandle(0)=CreateImage(0,20,20,32,#Red)
iconhandle(1)=CreateImage(1,20,20,32,#Blue)
iconhandle(2)=CreateImage(2,20,20,32,#Green)
OpenWindow(0,0,0,320,50,"...",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ComboBoxGadget(0,10,10,300,30,#PB_ComboBox_Editable|#PB_ComboBox_Image)
For i=0 To 9
AddGadgetItem(0,-1,"TEST "+Str(i),iconhandle(i&1))
Next i
SetActiveGadget(0)
Repeat
EventID.l = WaitWindowEvent()
Select EventID
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadget()
Case 0
Select EventType()
Case #PB_EventType_Change
n=GetGadgetState(0)
s.s=GetGadgetText(0)
If n<0 Or s<>GetGadgetItemText(0,n)
If n>=0
SetGadgetState(0,-1)
SetGadgetText(0,s)
;SendMessage_(GadgetID(0),#EM_SETSEL,1,1)
EndIf
SetGadgetItemImage(0,-1,iconhandle(2))
EndIf
EndSelect
EndSelect
EndSelect
ForEver


