Voici un sélecteur de couleurs (oui encore un parmi tant d'autre) Rien de spécial a ajouté. Je partage si ça peut être utile a d'autre.
Mise a jour le : 28/06/2019
Code : Tout sélectionner
; ///////////////////////////////////////////////
; // Autor : Venom //
; // Project name : VColor //
; // Version : V 1.0 //
; // Compilator : PureBasic V5.71 //
; // Date : 21/06/2019 //
; // OS : Windows 10 //
; ///////////////////////////////////////////////
;- Window Constants
Enumeration
#Window_VColorRequester
EndEnumeration
;- gadgets Constants
Enumeration
#VColorRequester_Canvas_Red
#VColorRequester_TrackBar_Red
#VColorRequester_Texte_Red
#VColorRequester_Canvas_Green
#VColorRequester_TrackBar_Green
#VColorRequester_Texte_Green
#VColorRequester_Canvas_Blue
#VColorRequester_TrackBar_Blue
#VColorRequester_Texte_Blue
#VColorRequester_CheckBox
#VColorRequester_Canvas_Alpha
#VColorRequester_TrackBar_Alpha
#VColorRequester_Texte_Alpha
#VColorRequester_Texte_Red1
#VColorRequester_Editor_Red1
#VColorRequester_Texte_Green1
#VColorRequester_Editor_Green1
#VColorRequester_Texte_Blue1
#VColorRequester_Editor_Blue1
#VColorRequester_Texte_Alpha1
#VColorRequester_Editor_Alpha1
#VColorRequester_Editor_Total
#VColorRequester_Canvas_Resultat
#VColorRequester_Button_Copy_Code
EndEnumeration
;{ Fenetre
If OpenWindow(#Window_VColorRequester, 0, 0, 230, 415, "VColor | Sélecteur de couleur", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
;{ Premiere partie des gadgts
CanvasGadget(#VColorRequester_Canvas_Red, 10, 10, 200, 30, #PB_Canvas_Border)
TrackBarGadget(#VColorRequester_TrackBar_Red, 10, 40, 200, 20, 0, 255)
TextGadget(#VColorRequester_Texte_Red, 215, 20, 15, 15, "R", 0)
If StartDrawing(CanvasOutput(#VColorRequester_Canvas_Red))
For x = 0 To 255
Box(x, 0, 1, 30, RGB(x, 0, 0))
Next
StopDrawing()
EndIf
CanvasGadget(#VColorRequester_Canvas_Green, 10, 70, 200, 30, #PB_Canvas_Border)
TrackBarGadget(#VColorRequester_TrackBar_Green, 10, 100, 200, 20, 0, 255)
TextGadget(#VColorRequester_Texte_Green, 215, 80, 15, 15, "G", 0)
If StartDrawing(CanvasOutput(#VColorRequester_Canvas_Green))
For x = 0 To 255
Box(x, 0, 1, 30, RGB(0, x, 0))
Next
StopDrawing()
EndIf
CanvasGadget(#VColorRequester_Canvas_Blue, 10, 130, 200, 30, #PB_Canvas_Border)
TrackBarGadget(#VColorRequester_TrackBar_Blue, 10, 160, 200, 20, 0, 255)
TextGadget(#VColorRequester_Texte_Blue, 215, 140, 15, 15, "B", 0)
If StartDrawing(CanvasOutput(#VColorRequester_Canvas_Blue))
For x = 0 To 255
Box(x, 0, 1, 30, RGB(0, 0, x))
Next
StopDrawing()
EndIf
; création / affichage d'une image avec transparence
ImageGadget(#VColorRequester_Canvas_Alpha, 10, 190, 200, 30, 0)
If CreateImage(#VColorRequester_Canvas_Alpha, 200, 30, 24, RGB(255,255,255))
StartDrawing(ImageOutput(#VColorRequester_Canvas_Alpha))
DrawingMode(#PB_2DDrawing_AlphaBlend)
For x = 0 To 256 Step 10
For y = 0 To 256 Step 10
Box(x, y, 5, 5, RGBA(150, 150, 150, 255))
Box(5+x, 5+y, 5, 5, RGBA(150, 150, 150, 255))
Next
Next
For z = 0 To 255
Box(z, 0, 1, 30, RGBA(0, 0, 0, z))
Next
StopDrawing()
EndIf
TrackBarGadget(#VColorRequester_TrackBar_Alpha, 10, 220, 200, 20, 0, 255)
SetGadgetState(#VColorRequester_TrackBar_Alpha, 255)
TextGadget(#VColorRequester_Texte_Alpha, 215, 200, 15, 15, "A", 0)
SetGadgetState(#VColorRequester_Canvas_Alpha, ImageID(#VColorRequester_Canvas_Alpha)) ; affiche l'image
;}
;{ Deuxieme partie des gadgts
TextGadget(#VColorRequester_Texte_Red1, 10, 250, 15, 15, "R :", 0)
StringGadget(#VColorRequester_Editor_Red1, 30, 245, 30, 20, "0", #PB_String_Numeric)
TextGadget(#VColorRequester_Texte_Green1, 10, 275, 15, 15, "G :", 0)
StringGadget(#VColorRequester_Editor_Green1, 30, 270, 30, 20, "0", #PB_String_Numeric)
TextGadget(#VColorRequester_Texte_Blue1, 10, 300, 15, 15, "B :", 0)
StringGadget(#VColorRequester_Editor_Blue1, 30, 295, 30, 20, "0", #PB_String_Numeric)
TextGadget(#VColorRequester_Texte_Alpha1, 10, 325, 15, 15, "A :", 0)
StringGadget(#VColorRequester_Editor_Alpha1, 30, 320, 30, 20, "255", #PB_String_Numeric)
StringGadget(#VColorRequester_Editor_Total, 10, 345, 80, 20, "$000000FF", #PB_String_ReadOnly)
CanvasGadget(#VColorRequester_Canvas_Resultat, 100, 245, 110, 120, #PB_Canvas_Border)
If StartDrawing(CanvasOutput(#VColorRequester_Canvas_Resultat))
Box(0, 0, 110, 120, RGB(GetGadgetState(#VColorRequester_TrackBar_Red), GetGadgetState(#VColorRequester_TrackBar_Green), GetGadgetState(#VColorRequester_TrackBar_Blue)))
StopDrawing()
EndIf
;}
;{ Troisieme partie des gadgts
ButtonGadget(#VColorRequester_Button_Copy_Code, 8, 370, 202, 20, "Copier le code RGBA", 0)
CheckBoxGadget(#VColorRequester_CheckBox, 10, 395, 202, 20, "Exclure le canal alpha", 0)
;}
EndIf
;}
;{ Boucle infini
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
;{ trackbar
Case #VColorRequester_TrackBar_Red
If StartDrawing(CanvasOutput(#VColorRequester_Canvas_Resultat))
Box(0, 0, 110, 120, RGB(GetGadgetState(#VColorRequester_TrackBar_Red), GetGadgetState(#VColorRequester_TrackBar_Green), GetGadgetState(#VColorRequester_TrackBar_Blue)))
StopDrawing()
SetGadgetText(#VColorRequester_Editor_Red1, Str(GetGadgetState(#VColorRequester_TrackBar_Red)))
EndIf
If GetGadgetState(#VColorRequester_CheckBox) = 0
SetGadgetText(#VColorRequester_Editor_Total, "$"+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Red))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Green))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Blue))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Alpha))), 2, "0") )
Else
SetGadgetText(#VColorRequester_Editor_Total, "$"+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Red))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Green))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Blue))), 2, "0"))
EndIf
If CreateImage(#VColorRequester_Canvas_Alpha, 200, 30, 24, RGB(255,255,255))
StartDrawing(ImageOutput(#VColorRequester_Canvas_Alpha))
DrawingMode(#PB_2DDrawing_AlphaBlend)
For x = 0 To 256 Step 10
For y = 0 To 256 Step 10
Box(x, y, 5, 5, RGBA(150, 150, 150, 255))
Box(5+x, 5+y, 5, 5, RGBA(150, 150, 150, 255))
Next
Next
For z = 0 To 255
Box(z, 0, 1, 30, RGBA(GetGadgetState(#VColorRequester_TrackBar_Red), GetGadgetState(#VColorRequester_TrackBar_Green), GetGadgetState(#VColorRequester_TrackBar_Blue), z))
Next
StopDrawing()
EndIf
SetGadgetState(#VColorRequester_Canvas_Alpha, ImageID(#VColorRequester_Canvas_Alpha)) ; affiche l'image
Case #VColorRequester_TrackBar_Green
If StartDrawing(CanvasOutput(#VColorRequester_Canvas_Resultat))
Box(0, 0, 110, 120, RGB(GetGadgetState(#VColorRequester_TrackBar_Red), GetGadgetState(#VColorRequester_TrackBar_Green), GetGadgetState(#VColorRequester_TrackBar_Blue)))
StopDrawing()
SetGadgetText(#VColorRequester_Editor_Green1, Str(GetGadgetState(#VColorRequester_TrackBar_Green)))
EndIf
SetGadgetText(#VColorRequester_Editor_Total, "$"+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Alpha))), 2, "0") +RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Blue))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Green))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Red))), 2, "0"))
If GetGadgetState(#VColorRequester_CheckBox) = 0
SetGadgetText(#VColorRequester_Editor_Total, "$"+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Red))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Green))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Blue))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Alpha))), 2, "0") )
Else
SetGadgetText(#VColorRequester_Editor_Total, "$"+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Red))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Green))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Blue))), 2, "0"))
EndIf
If CreateImage(#VColorRequester_Canvas_Alpha, 200, 30, 24, RGB(255,255,255))
StartDrawing(ImageOutput(#VColorRequester_Canvas_Alpha))
DrawingMode(#PB_2DDrawing_AlphaBlend)
For x = 0 To 256 Step 10
For y = 0 To 256 Step 10
Box(x, y, 5, 5, RGBA(150, 150, 150, 255))
Box(5+x, 5+y, 5, 5, RGBA(150, 150, 150, 255))
Next
Next
For z = 0 To 255
Box(z, 0, 1, 30, RGBA(GetGadgetState(#VColorRequester_TrackBar_Red), GetGadgetState(#VColorRequester_TrackBar_Green), GetGadgetState(#VColorRequester_TrackBar_Blue), z))
Next
StopDrawing()
EndIf
SetGadgetState(#VColorRequester_Canvas_Alpha, ImageID(#VColorRequester_Canvas_Alpha)) ; affiche l'image
Case #VColorRequester_TrackBar_Blue
If StartDrawing(CanvasOutput(#VColorRequester_Canvas_Resultat))
Box(0, 0, 110, 120, RGB(GetGadgetState(#VColorRequester_TrackBar_Red), GetGadgetState(#VColorRequester_TrackBar_Green), GetGadgetState(#VColorRequester_TrackBar_Blue)))
StopDrawing()
SetGadgetText(#VColorRequester_Editor_Blue1, Str(GetGadgetState(#VColorRequester_TrackBar_Blue)))
EndIf
SetGadgetText(#VColorRequester_Editor_Total, "$"+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Alpha))), 2, "0") +RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Blue))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Green))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Red))), 2, "0"))
If GetGadgetState(#VColorRequester_CheckBox) = 0
SetGadgetText(#VColorRequester_Editor_Total, "$"+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Red))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Green))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Blue))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Alpha))), 2, "0") )
Else
SetGadgetText(#VColorRequester_Editor_Total, "$"+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Red))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Green))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Blue))), 2, "0"))
EndIf
If CreateImage(#VColorRequester_Canvas_Alpha, 200, 30, 24, RGB(255,255,255))
StartDrawing(ImageOutput(#VColorRequester_Canvas_Alpha))
DrawingMode(#PB_2DDrawing_AlphaBlend)
For x = 0 To 256 Step 10
For y = 0 To 256 Step 10
Box(x, y, 5, 5, RGBA(150, 150, 150, 255))
Box(5+x, 5+y, 5, 5, RGBA(150, 150, 150, 255))
Next
Next
For z = 0 To 255
Box(z, 0, 1, 30, RGBA(GetGadgetState(#VColorRequester_TrackBar_Red), GetGadgetState(#VColorRequester_TrackBar_Green), GetGadgetState(#VColorRequester_TrackBar_Blue), z))
Next
StopDrawing()
EndIf
SetGadgetState(#VColorRequester_Canvas_Alpha, ImageID(#VColorRequester_Canvas_Alpha)) ; affiche l'image
Case #VColorRequester_TrackBar_Alpha
SetGadgetText(#VColorRequester_Editor_Alpha1, Str(GetGadgetState(#VColorRequester_TrackBar_Alpha)))
SetGadgetText(#VColorRequester_Editor_Total, "$"+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Red))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Green))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Blue))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Alpha))), 2, "0") )
;}
;{ Editor
Case #VColorRequester_Editor_Red1
SetGadgetState(#VColorRequester_TrackBar_Red, Val(GetGadgetText(#VColorRequester_Editor_Red1)))
If StartDrawing(CanvasOutput(#VColorRequester_Canvas_Resultat))
Box(0, 0, 110, 120, RGB(GetGadgetState(#VColorRequester_TrackBar_Red), GetGadgetState(#VColorRequester_TrackBar_Green), GetGadgetState(#VColorRequester_TrackBar_Blue)))
StopDrawing()
EndIf
SetGadgetText(#VColorRequester_Editor_Total, "$"+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Alpha))), 2, "0") +RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Blue))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Green))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Red))), 2, "0"))
Case #VColorRequester_Editor_Green1
SetGadgetState(#VColorRequester_TrackBar_Green, Val(GetGadgetText(#VColorRequester_Editor_Green1)))
If StartDrawing(CanvasOutput(#VColorRequester_Canvas_Resultat))
Box(0, 0, 110, 120, RGB(GetGadgetState(#VColorRequester_TrackBar_Red), GetGadgetState(#VColorRequester_TrackBar_Green), GetGadgetState(#VColorRequester_TrackBar_Blue)))
StopDrawing()
EndIf
SetGadgetText(#VColorRequester_Editor_Total, "$"+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Alpha))), 2, "0") +RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Blue))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Green))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Red))), 2, "0"))
Case #VColorRequester_Editor_Blue1
SetGadgetState(#VColorRequester_TrackBar_Blue, Val(GetGadgetText(#VColorRequester_Editor_Blue1)))
If StartDrawing(CanvasOutput(#VColorRequester_Canvas_Resultat))
Box(0, 0, 110, 120, RGB(GetGadgetState(#VColorRequester_TrackBar_Red), GetGadgetState(#VColorRequester_TrackBar_Green), GetGadgetState(#VColorRequester_TrackBar_Blue)))
StopDrawing()
EndIf
SetGadgetText(#VColorRequester_Editor_Total, "$"+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Alpha))), 2, "0") +RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Blue))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Green))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Red))), 2, "0"))
Case #VColorRequester_Editor_Alpha1
SetGadgetState(#VColorRequester_TrackBar_Alpha, Val(GetGadgetText(#VColorRequester_Editor_Alpha1)))
If StartDrawing(CanvasOutput(#VColorRequester_Canvas_Resultat))
Box(0, 0, 110, 120, RGB(GetGadgetState(#VColorRequester_TrackBar_Red), GetGadgetState(#VColorRequester_TrackBar_Green), GetGadgetState(#VColorRequester_TrackBar_Blue)))
StopDrawing()
EndIf
SetGadgetText(#VColorRequester_Editor_Total, "$"+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Alpha))), 2, "0") +RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Blue))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Green))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Red))), 2, "0"))
;}
;{ Buttons / Checkbox
Case #VColorRequester_Button_Copy_Code
If GetGadgetState(#VColorRequester_CheckBox) = 0
SetClipboardText(" RGBA("+GetGadgetText(#VColorRequester_Editor_Red1)+", "+GetGadgetText(#VColorRequester_Editor_Green1)+", "+GetGadgetText(#VColorRequester_Editor_Blue1)+", "+GetGadgetText(#VColorRequester_Editor_Alpha1)+")")
MessageRequester("Information", "Le code : "+" RGBA("+GetGadgetText(#VColorRequester_Editor_Red1)+", "+GetGadgetText(#VColorRequester_Editor_Green1)+", "+GetGadgetText(#VColorRequester_Editor_Blue1)+", "+GetGadgetText(#VColorRequester_Editor_Alpha1)+")"+#LF$+"A bien était copier dans le presse papier.", 0)
Else
SetClipboardText(" RGB("+GetGadgetText(#VColorRequester_Editor_Red1)+", "+GetGadgetText(#VColorRequester_Editor_Green1)+", "+GetGadgetText(#VColorRequester_Editor_Blue1)+")")
MessageRequester("Information", "Le code : "+" RGB("+GetGadgetText(#VColorRequester_Editor_Red1)+", "+GetGadgetText(#VColorRequester_Editor_Green1)+", "+GetGadgetText(#VColorRequester_Editor_Blue1)+")"+#LF$+"A bien était copier dans le presse papier.", 0)
EndIf
Case #VColorRequester_CheckBox
If GetGadgetState(#VColorRequester_CheckBox) = 0 ; check non cocher
DisableGadget(#VColorRequester_Canvas_Alpha, #False)
DisableGadget(#VColorRequester_TrackBar_Alpha, #False)
DisableGadget(#VColorRequester_Editor_Alpha1, #False)
SetGadgetText(#VColorRequester_Editor_Total, "$"+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Red))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Green))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Blue))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Alpha))), 2, "0") )
SetGadgetText(#VColorRequester_Button_Copy_Code, "Copier le code RGBA")
Else ; check cocher
DisableGadget(#VColorRequester_Canvas_Alpha, #True)
DisableGadget(#VColorRequester_TrackBar_Alpha, #True)
DisableGadget(#VColorRequester_Editor_Alpha1, #True)
SetGadgetText(#VColorRequester_Editor_Total, "$"+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Red))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Green))), 2, "0")+RSet(Hex(Red(GetGadgetState(#VColorRequester_TrackBar_Blue))), 2, "0"))
SetGadgetText(#VColorRequester_Button_Copy_Code, "Copier le code RGB")
EndIf
;}
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
;}
@++