Pourquoi pas un choix de couleurs (Quatre dans cet exemple) dans un ComboGadget()
Code : Tout sélectionner
Enumeration Window
#mf
EndEnumeration
Enumeration Gadgets
#mfColorRequester
EndEnumeration
Global Color
Declare ChangeColor()
Declare Exit()
OpenWindow(#mf, 0, 0, 800, 600, "", #PB_Window_ScreenCentered)
ComboBoxGadget(#mfColorRequester, 10, 20, 100, 24, #PB_ComboBox_Image)
Color = RGB(255,255,255)
CreateImage(0, 16, 16, 32, Color) ;Creation de l'image
AddGadgetItem(#mfColorRequester, -1, "Blanc", ImageID(0)) ;Ajout de la couleur dans la liste
SetGadgetItemData(#mfColorRequester, 0, Color) ;L'item crée est associé à la valeur de la couleur
Color = RGB(0,255,0)
CreateImage(1, 16, 16, 32, Color)
AddGadgetItem(#mfColorRequester, -1, "Vert", ImageID(1))
SetGadgetItemData(#mfColorRequester, 1, Color)
Color = RGB(0,0,255)
CreateImage(2, 16, 16, 32, Color)
AddGadgetItem(#mfColorRequester, -1, "Bleu", ImageID(2))
SetGadgetItemData(#mfColorRequester, 2, Color)
Color = RGB(255,0,0)
CreateImage(3, 16, 16, 32, Color)
AddGadgetItem(#mfColorRequester, -1, "Rouge", ImageID(3))
SetGadgetItemData(#mfColorRequester, 3, Color)
BindGadgetEvent(#mfColorRequester, @ChangeColor())
BindEvent(#PB_Event_CloseWindow, @Exit())
Repeat : WaitWindowEvent() : ForEver
Procedure ChangeColor()
Protected BackgroundColor = GetGadgetItemData(#mfColorRequester, GetGadgetState(#mfColorRequester))
SetWindowColor(0, BackgroundColor)
EndProcedure
Procedure Exit()
End
EndProcedure