Moi aussi, merci Ar-s pour ce partageDobro a écrit :bonne idée , j'adopte
un Gadget Palette ....un ...
Re: un Gadget Palette ....un ...
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: un Gadget Palette ....un ...
Cette histoire de noir et blanc pur manquant m'a travaillé. Aussi, j'ai fais des retouches et voila le resultat :
Code : Tout sélectionner
Declare.l event_palette_gadget(num) ; event_palette_gadget(numero du gadget)
Declare Palette_gadget(num,x,y,cadre);Palette_gadget(numero du gadget,x,y,largeur,hauteur)
Declare Round2(Number.f)
Declare.f Min(val_1.f,val_2.f,val_3.f)
Declare.f Max(val_1.f,val_2.f,val_3.f)
Declare TSL_RGB(Hue.f,Saturation.f,Brightness.f)
Enumeration
#palette
EndEnumeration
If OpenWindow(0, 0, 0, 315,310, "Pick_color", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
Palette_gadget(#palette,20,10,0) ; dessin du gadget palette sans cadre
Repeat
Event = WaitWindowEvent(2)
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case #palette
couleur=event_palette_gadget(#palette) ; envoi l'event au gadget Palette , qui retourne la couleur choisie
If couleur<>-1
Debug "couleur Palette 1= "+"Rouge "+Red(couleur)+" Vert "+Green(couleur)+" Bleu "+Blue(couleur)
EndIf
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf
;******* Zone Procedure ***************
Procedure.l event_palette_gadget(num) ; event_palette_gadget(numero du gadget)
If EventType() = #PB_EventType_LeftButtonDown ;Or (EventType() = #PB_EventType_MouseMove And GetGadgetAttribute(num, #PB_Canvas_Buttons) & #PB_Canvas_LeftButton)
x1 = GetGadgetAttribute(num, #PB_Canvas_MouseX)
y1 = GetGadgetAttribute(num, #PB_Canvas_MouseY)
If StartDrawing(CanvasOutput(num))
If (x1 >= 1 And x1 <=257) And (y1 >1 And y1 <=258)
couleur = Point(x1,y1)
Box (266,1,20,259,couleur)
Beep_(1600,50)
DrawText(15,268,"FFFFFFFFFF",RGB(255,255,255),RGB(255,255,255))
DrawText(15,268,"$"+Hex(couleur),RGB(0,0,0),RGB(255,255,255))
EndIf
StopDrawing()
ProcedureReturn couleur
EndIf
EndIf
ProcedureReturn -1
EndProcedure
Procedure Palette_gadget(num,x,y,cadre);Palette_gadget(numero du gadget,x,y,largeur,hauteur)
Larg=276 :haut=276+15
CanvasGadget(num, x,y,larg,haut)
If StartDrawing(CanvasOutput(num))
Box(1,0,258,260,RGB(100,220,255))
Box(2,1,256,1,RGB(0,0,0))
Box(2,258,256,1,RGB(255,255,255))
; Palette Graph100
For y=0 To 255
For x=0 To 255
abscisse.f=x:Ordonne.f=y: max.f=256: maxY.f=256
Protected couleur, taux.f, index1.f, index2.f, index3.f, index4.f, index5.f
index1.f = max / 6
index2.f = 2 * max / 6
index3.f = 3 * max / 6
index4.f = 4 * max / 6
index5.f = 5 * max / 6
If Ordonne * 2 / maxY > 1
abscisse - index1
If abscisse < 0 : abscisse + max : EndIf
EndIf
If abscisse >= 0 And abscisse <= index1
couleur = RGB(255, (((abscisse * max) / index1) * 255) / max, 0)
EndIf
If abscisse > index1 And abscisse <= index2
couleur = RGB(((max - ((abscisse - index1) * max) / index1) * 255) / max, 255, 0)
EndIf
If abscisse > index2 And abscisse <= index3
couleur = RGB(0, 255, ((((abscisse - index2) * max) / index1) * 255) / max)
EndIf
If abscisse > index3 And abscisse <= index4
couleur = RGB(0, ((max - ((abscisse - index3) * max) / index1) * 255) / max, 255)
EndIf
If abscisse > index4 And abscisse <= index5
couleur = RGB(((abscisse - index4) * 255) / index1, 0, 255)
EndIf
If abscisse > index5 And abscisse <= max
couleur = RGB(255, 0, ((max - ((abscisse - index5) * max) / index1) * 255) / max)
EndIf
taux.f = Ordonne * 2 / maxY
If taux <= 1
couleur = RGB(taux * Red(couleur), taux * Green(couleur), taux * Blue(couleur))
Else
taux - 2
couleur = RGB(255 + taux * Green(couleur), 255 + taux * Blue(couleur), 255 + taux * Red(couleur))
EndIf
x1=x+1
y1=y+1
; If x1>255:x1=255:EndIf
; If y1>255:y1=255:EndIf
Plot(x1+1,y1+1,couleur)
Next x
Next y
; ;}
StopDrawing()
EndIf
EndProcedure
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Re: un Gadget Palette ....un ...
Bonjour à tous,
@SPH, je tiens à te dire que ton travail est fabuleux, donc j'adopte, j'ai juste modifié la ligne 44, ce qui ne change rien du tout au code :
tu vois que ce que j'ai fait est d'une banalité, mais que veux-tu ? Je suis un perfectionniste pointilleux qui aime les belles choses et quand c'est beau, ça marche forcément mieux !
Merci beaucoup pour ce partage.
@SPH, je tiens à te dire que ton travail est fabuleux, donc j'adopte, j'ai juste modifié la ligne 44, ce qui ne change rien du tout au code :
Code : Tout sélectionner
DrawText(15,268,"$"+RSet(Hex(couleur),6,"0"),RGB(0,0,0),RGB(255,255,255))
Merci beaucoup pour ce partage.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: un Gadget Palette ....un ...
SPH a écrit :Cette histoire de noir et blanc pur manquant m'a travaillé.
pour info dans la derniere version du code (voir 1er page )
le blanc et le noir s'y trouve deja
et en bas du gadget, un carré noir a coté du blanc a été ajouté , pour un captage rapide
d'ailleurs je compte ajouter un carré par couleur primaire et "secondaire"
rouge pur, vert pur, bleu pur ,jaune pure ,violet pur ,cyan pur
bref toutes les couleurs ayant 255 et 0 dans leur composantes ...
Re: un Gadget Palette ....un ...
voila , code modifié dans ce sens
Re: un Gadget Palette ....un ...
Eh bien voilà, on y arrive !
Il faut bien admettre qu'on utilise plus souvent les couleurs pures pour les textes et les strings, voire fond de fenêtre et les composantes plutôt pour les graphiques (à mon avis) !
Un grand merci sincère, à toi Dobro
Il faut bien admettre qu'on utilise plus souvent les couleurs pures pour les textes et les strings, voire fond de fenêtre et les composantes plutôt pour les graphiques (à mon avis) !
Un grand merci sincère, à toi Dobro
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: un Gadget Palette ....un ...
arf !!
changement de code, j'ai ajouté les options "Cadre" et titre_de_cadre" en parametres optionnel
Merci
changement de code, j'ai ajouté les options "Cadre" et titre_de_cadre" en parametres optionnel
Merci
Re: un Gadget Palette ....un ...
La frame3D et le titre n'ont pas vraiment d’intérêt, il vaut mieux ouvrir le canvas avec ou sans sa bordure vu qu'il peut en avoir une nativement.Dobro a écrit :arf !!
changement de code, j'ai ajouté les options "Cadre" et titre_de_cadre" en parametres optionnel
Merci
J'ai aussi ajouté l'export de la couleur en Hex dans le presse papier et elle s'affiche en info bulle au clique gauche (export plus pratique pour feuille de style css par ex). J'ai aussi mis cadre = 0 par defaut.
Code : Tout sélectionner
Palette_gadget(#palette,20,10) ; dessin du gadget palette sans cadre
Palette_gadget(#palette2,20,300,1) ; dessin du gadget palette sans cadre
Code : Tout sélectionner
;***********************************************
;Titre :*Palette_gadget
;Auteur : Dobro
;Date :15/06/2014
;Heure :18:46:29
;Version Purebasic : PureBasic 5.22 LTS (Windows - x86)
;Version de l'editeur :EPB V2.54
; Libairies necessaire : Aucune
;***********************************************
Declare.l event_palette_gadget(num) ; event_palette_gadget(numero du gadget)
; Ajout Ar-S cadre = 0
Declare Palette_gadget(num,x,y,cadre=0);Palette_gadget(numero du gadget,x,y,largeur,hauteur)
Enumeration
#palette
#palette2
EndEnumeration
If OpenWindow(0, 0, 0, 800, 600, "Pick_color", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
Palette_gadget(#palette,20,10) ; dessin du gadget palette sans cadre
Palette_gadget(#palette2,20,300,1) ; dessin du gadget palette sans cadre
Repeat
Event = WaitWindowEvent(2)
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case #palette
couleur=event_palette_gadget(#palette) ; envoi l'event au gadget Palette , qui retourne la couleur choisie
If couleur<>-1
Debug "couleur Palette 1= "+"Rouge "+Red(couleur)+" Vert "+Green(couleur)+" Bleu "+Blue(couleur)
EndIf
Case #palette2
couleur=event_palette_gadget(#palette2) ; envoi l'event au gadget Palette , qui retourne la couleur choisie
If couleur<>-1
Debug "couleur Palette 1= "+"Rouge "+Red(couleur)+" Vert "+Green(couleur)+" Bleu "+Blue(couleur)
EndIf
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf
;******* Zone Procedure ***************
Procedure.l event_palette_gadget(num) ; event_palette_gadget(numero du gadget)
;By Dobro modif d'Ar-S
; retourne la couleur choisie
Select EventType()
Case #PB_EventType_MouseEnter, #PB_EventType_MouseMove
Capture = 1
x1 = GetGadgetAttribute(num, #PB_Canvas_MouseX)
y1 = GetGadgetAttribute(num, #PB_Canvas_MouseY)
If StartDrawing(CanvasOutput(num))
If (x1 >= 0 And x1 <=255) And (y1 >=0 And y1 <=275)
couleur = Point(x1,y1)
Box (257,0,20,128,couleur)
EndIf
StopDrawing()
EndIf
Case #PB_EventType_LeftClick
Capture = 0
x1 = GetGadgetAttribute(num, #PB_Canvas_MouseX)
y1 = GetGadgetAttribute(num, #PB_Canvas_MouseY)
If StartDrawing(CanvasOutput(num))
If (x1 >= 0 And x1 <=255) And (y1 >=0 And y1 <=275)
couleur = Point(x1,y1)
Box (257,129,20,128,couleur)
EndIf
StopDrawing()
; //Ajout Ar-S 21/06/14 - 17h06//
HexColor$ = RSet (Hex(Red(couleur)),2,"0") + RSet (Hex(Green(couleur)),2,"0") + RSet (Hex(Blue(couleur)),2,"0")
GadgetToolTip(num, "RGB Hex : #"+ HexColor$ + " copiée dans le presse papier.")
SetClipboardText( HexColor$ )
; //////////
ProcedureReturn couleur
EndIf
Default
Capture = 0
EndSelect
ProcedureReturn -1
EndProcedure
Procedure Palette_gadget(num,x,y,cadre=0);Palette_gadget(numero du gadget,x,y,largeur,hauteur)
; By Dobro
; Affiche le Gadget Palette
Larg=276 :haut=276
If cadre = 1
style = #PB_Canvas_Border
Else
style = 0
EndIf
CanvasGadget(num, x,y,larg,haut, style)
If StartDrawing(CanvasOutput(num))
For y=0 To 255
For x=0 To 255
abscisse.f=x:Ordonne.f=y: max.f=256: maxY.f=256
Protected couleur, taux.f, index1.f, index2.f, index3.f, index4.f, index5.f
index1.f = max / 6
index2.f = 2 * max / 6
index3.f = 3 * max / 6
index4.f = 4 * max / 6
index5.f = 5 * max / 6
If Ordonne * 2 / maxY > 1
abscisse - index1
If abscisse < 0 : abscisse + max : EndIf
EndIf
If abscisse >= 0 And abscisse <= index1
couleur = RGB(255, (((abscisse * max) / index1) * 255) / max, 0)
EndIf
If abscisse > index1 And abscisse <= index2
couleur = RGB(((max - ((abscisse - index1) * max) / index1) * 255) / max, 255, 0)
EndIf
If abscisse > index2 And abscisse <= index3
couleur = RGB(0, 255, ((((abscisse - index2) * max) / index1) * 255) / max)
EndIf
If abscisse > index3 And abscisse <= index4
couleur = RGB(0, ((max - ((abscisse - index3) * max) / index1) * 255) / max, 255)
EndIf
If abscisse > index4 And abscisse <= index5
couleur = RGB(((abscisse - index4) * 255) / index1, 0, 255)
EndIf
If abscisse > index5 And abscisse <= max
couleur = RGB(255, 0, ((max - ((abscisse - index5) * max) / index1) * 255) / max)
EndIf
taux.f = Ordonne * 2 / maxY
If taux <= 1
couleur = RGB(taux * Red(couleur), taux * Green(couleur), taux * Blue(couleur))
Else
taux - 2
couleur = RGB(255 + taux * Green(couleur), 255 + taux * Blue(couleur), 255 + taux * Red(couleur))
EndIf
x1=x+1
y1=y+1
If x1>255:x1=255:EndIf
If y1>255:y1=255:EndIf
Plot(x1,y1,couleur)
Next x
Next y
xb=0
Box(xb,256,20,20,RGB(0,0,0))
xb+20
Box(xb,256,20,20,RGB(255,255,255))
xb+20
Box(xb,256,20,20,RGB(255,0,0))
xb+20
Box(xb,256,20,20,RGB(255,255,0))
xb+20
Box(xb,256,20,20,RGB(0,255,0))
xb+20
Box(xb,256,20,20,RGB(0,255,255))
xb+20
Box(xb,256,20,20,RGB(0,0,255))
xb+20
Box(xb,256,20,20,RGB(255,0,255))
;}
StopDrawing()
EndIf
EndProcedure
; Epb
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: un Gadget Palette ....un ...
si , car le but finalement n'est pas tant de delimiter la palette que de lui attribuer un titreAr-S a écrit : La frame3D et le titre n'ont pas vraiment d’intérêt,
ça peut etre utile dans un soft de dessin de savoir a quoi sert la palette "palette couleur dessin" , "palette gomme" , "palette ecriture" , "palette fond" etc ...
ça permet de personnaliser l'emploi voulu de la palette
là encore, je ne cautionne pas l'emploi du press-papier ... imagine que le gadget palette soit employé pour un traitement de textJ'ai aussi ajouté l'export de la couleur en Hex dans le presse papier et elle s'affiche en info bulle au clique gauche (export plus pratique pour feuille de style css par ex).
; pour la couleur des fontes ... un traitement de text doit pouvoir utiliser le Press-papier sans parasite ...
en general , j'evite autant que possible l'emploi du press-papier .. (sauf pour une application ou je maitrise l'emploi )
mais un gagdet doit rester le plus discret possible puisque present au sein d'une application dont on ne maitrise pas l'environnement (le GadgetToolTip est par contre une bonne idée )
en tout cas , merci pour ton interet
Re: un Gadget Palette ....un ...
Ah que c'est bien, la collégialité, où chacun s'approprie un instant, le travail des autres pour l'améliorer, tout simplement pour le plaisir de partager, moi, je suis pour et je dis : continuez ainsi et vous ne rendrez pas heureux que vous !
Alors merci à tous, vous faites partie de l'élite de ce forum et je souhaite vivement qu'il perdure très longtemps !
Alors merci à tous, vous faites partie de l'élite de ce forum et je souhaite vivement qu'il perdure très longtemps !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: un Gadget Palette ....un ...
Ar-S a écrit : J'ai aussi mis cadre = 0 par defaut.
là, je ne compreds pas trop ....
je l'avais deja mis l'option 0 par defaut !
puisque le premier gadget que j'affiche est sans cadre ...
Rappel , Le premier Code du Topic (celui de la page un )
est la reference a prendre avant de coder vos ajout eventuel .. Merci
(je vais d'ailleurs de ce pas y ajouter le GadgetToolTip de la couleur pointé ... merci Ar-s)
Re: un Gadget Palette ....un ...
Bon ... gros changement
finalement j'ai viré le Gadget Tooltips, car trop lent a reagir
j'ai instauré une Structure , donc une petite initialisation du gadget est dorénavent nécessaire
(voir exemple Page 1 )
mais cela permet de passer /recuperer plus d'info , sans avoir a utiliser le press-papier
du coup maintenant, dans le gadget on aura la couleur Hexa + les composantes qui s'affichent
pour l'utilisation ça ne change rien (a part la petite initialisation du debut (exemple pour 10 gadgets possible (Dim(10) )
finalement j'ai viré le Gadget Tooltips, car trop lent a reagir
j'ai instauré une Structure , donc une petite initialisation du gadget est dorénavent nécessaire
(voir exemple Page 1 )
mais cela permet de passer /recuperer plus d'info , sans avoir a utiliser le press-papier
du coup maintenant, dans le gadget on aura la couleur Hexa + les composantes qui s'affichent
pour l'utilisation ça ne change rien (a part la petite initialisation du debut (exemple pour 10 gadgets possible (Dim(10) )
Re: un Gadget Palette ....un ...
Pourquoi mettre 2 palettes ?
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Re: un Gadget Palette ....un ...
parceque l'une est Présenté "normale" (sans cadre )
l'autre avec l'option "Cadre=1" + "titre de palette" (reveil SPH )
c'est un exemple qui montre les 2 possibilitées
de plus ça permet de tester qu'on peut utiliser plusieurs fois le Gadgets ...
l'autre avec l'option "Cadre=1" + "titre de palette" (reveil SPH )
c'est un exemple qui montre les 2 possibilitées
de plus ça permet de tester qu'on peut utiliser plusieurs fois le Gadgets ...
Re: un Gadget Palette ....un ...
Des palettes, il y en a des tas : https://www.google.fr/search?q=palette+ ... 66&bih=677
J'aime particulierement celle la : http://www.fangpo1.com/palette_couleurs ... picker.htm
Je vais essayer de la coder en PB...
J'aime particulierement celle la : http://www.fangpo1.com/palette_couleurs ... picker.htm
Je vais essayer de la coder en PB...
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits