hum ! en voulant colorer un code de Chris , je me suis rendu compte de 2 petit bug
le premier sur la rencontre du signe "_" et l'autre sur la fin de certaines ligne de commentaire !
les fichiers et le sources on donc ete remodifié ! (j'espere que c'est la derniere

)
voici le code de Chris coloré , qui prouve que ça marche maintenant !
;- Window Constants
Enumeration
#Window
EndEnumeration
;- Gadget Constants
Enumeration
#Combo_1
#Combo_2
#String_1
#String_2
#String_3
#Button
EndEnumeration
Procedure Open_Window()
If OpenWindow ( #Window , 496, 78, 315, 175, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Test" )
If CreateGadgetList ( WindowID ())
ComboBoxGadget ( #Combo_1 , 10, 10, 295, 200, #PB_ComboBox_Editable )
ComboBoxGadget ( #Combo_2 , 10, 50, 295, 200, #PB_ComboBox_Editable )
StringGadget ( #String_1 , 10, 75, 295, 20, "" )
StringGadget ( #String_2 , 10, 100, 295, 20, "" )
StringGadget ( #String_3 , 10, 125, 295, 20, "" )
ButtonGadget ( #Button , 115, 150, 100, 20, "Bouton" )
EndIf
EndIf
RemoveKeyboardShortcut ( #Window , #PB_Shortcut_All )
AddKeyboardShortcut ( #Window , #PB_Shortcut_Tab , #PB_Shortcut_Tab )
AddKeyboardShortcut ( #Window , #PB_Shortcut_Left , #PB_Shortcut_Left )
EndProcedure
Procedure EnumChildProc(hwnd, lParam)
Result = #True
Class$ = Space (128) : GetClassName_ (hwnd, @Class$, 128)
If LCase (Class$) = "edit"
Resultat = hwnd : Result = #False
EndIf
EnumChildWindows_ (hwnd, @EnumChildProc(), lParam)
ProcedureReturn Resultat
EndProcedure
;/ Ouverture de la fenêtre
Open_Window()
For i = 0 To 20
AddGadgetItem ( #Combo_1 , -1, "Elément " + Str (i))
AddGadgetItem ( #Combo_2 , -1, "Elément " + Str (i))
Next
SetGadgetState ( #Combo_1 , 0)
SetGadgetState ( #Combo_2 , 0)
ActivateGadget ( #Combo_1 )
;/ On va chercher le 'handle' de l'Edit qui se trouve dans la ComboBox
;/ Le handle est global, et n'est recherché qu'une fois, à l'ouverture
;/ du programme
hCombo_1 = EnumChildWindows_ ( GadgetID ( #Combo_1 ),@EnumChildProc(),0)
hCombo_2 = EnumChildWindows_ ( GadgetID ( #Combo_2 ),@EnumChildProc(),0)
Repeat
Select WaitWindowEvent ()
Case #PB_EventMenu
Select EventMenuID ()
Case #PB_Shortcut_Tab
;/ Et on a plus qu'à utiliser GetFocus_()
Focus = GetFocus_ ()
Select Focus
Case hCombo_1 : ActivateGadget ( #Combo_2 )
Case hCombo_2 : ActivateGadget ( #String_1 )
Case GadgetID ( #String_1 ) : ActivateGadget ( #String_2 )
Case GadgetID ( #String_2 ) : ActivateGadget ( #String_3 )
Case GadgetID ( #String_3 ) : ActivateGadget ( #Combo_1 )
EndSelect
Case #PB_Shortcut_Left
If GetFocus_ () = hCombo_1
SendMessage_ ( GadgetID ( #Combo_1 ), #CB_SHOWDROPDOWN , #True , 0)
EndIf
If GetFocus_ () = hCombo_2
SendMessage_ ( GadgetID ( #Combo_2 ), #CB_SHOWDROPDOWN , #True , 0)
EndIf
EndSelect
Case #PB_EventGadget
Select EventGadgetID ()
Case #Combo_1
Case #Combo_2
Case #String_1
Case #String_2
Case #String_3
EndSelect
Case #PB_EventCloseWindow
quit = 1
EndSelect
Until quit
End