un Gadget Palette ....un ...

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: un Gadget Palette ....un ...

Message par Micoute »

Il y avait juste à demander ! C'est trop de la balle, comme disaient mes enfants quand ils étaient marmots !
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 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: un Gadget Palette ....un ...

Message par SPH »

Dobro a écrit :bon en principe j'ai resouds le probleme
2 problemes avec ton nouveau code :

1> Un clic sur le cadre noir et on a une erreur
2> Il manque (je crois tout du moins) 2 couleurs a ta super palette : le noir et le blanc pur

PS : d'ailleurs, a propos du point 2, tu n'as que 254*254 couleurs au lieu de 256*256*256
Je me demande ou sont passé les autres couleurs.
Mais pour rester en 16 bits de couleurs, il te faut 256*256 couleurs

!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.12LTS- 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: un Gadget Palette ....un ...

Message par Ar-S »

@SPH - Ligne 52
Remplacer

Code : Tout sélectionner

        	 couleur = Point(x1,y1)
par

Code : Tout sélectionner

         If x1 >= 0 and y1 => 0
        	 couleur = Point(x1,y1)
         EndIf
Dernière modification par Ar-S le mer. 18/juin/2014 21:12, modifié 1 fois.
~~~~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
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: un Gadget Palette ....un ...

Message par SPH »

Ar-S a écrit :@SPH - Ligne 52
Remplacer

Code : Tout sélectionner

        	 couleur = Point(x1,y1)
par

Code : Tout sélectionner

         If x1 >= 0 Or y1 => 0
        	 couleur = Point(x1,y1)
         EndIf
Oui, je sais ou est le probleme. Mais ce n'est pas un Or mais un And :wink:

!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.12LTS- 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: un Gadget Palette ....un ...

Message par Ar-S »

Anéféé :mrgreen: corrigé
~~~~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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: un Gadget Palette ....un ...

Message par Backup »

Merci pour la correction

je suis revenu a l'ancien systeme d'affichage de couleurs a l'aide de GradientColor() voir l'exemple ....


ya un truc qui merdoie avec "box(xc+1, 0, xc+1,haut) "

ça devrai donner des lignes verticale de 1 pixel .. ce n'est pas le cas !

si je fais
XC=100
box(xc, 0, xc,haut)

dans la procedure :

Code : Tout sélectionner

Procedure Palette_gadget(num,x,y,cadre);Palette_gadget(numero du gadget,x,y,largeur,hauteur)
	; By Dobro
	; Affiche le Gadget Palette
	Larg=256 :haut=256
	
	if cadre=1
		FrameGadget(#PB_Any, x-5, y-15, Larg+15, Haut+20, "Palette By Dobro")
		
		
	Endif
	CanvasGadget(num, x,y,larg,haut)
	If StartDrawing(CanvasOutput(num)) 
		;{ ancien system by Dobro
		DrawingMode(#PB_2DDrawing_Gradient)      
		BackColor( rgb(0,0,0)) ; de Noir a
		;for xc=0 to 255 
		xc=100
			GradientColor(0.2, rgb(xc,0,0)) ; rouge , de rouge a :
			GradientColor(0.3, rgb(xc,0,xc)) ;violet , de Violet a :
			GradientColor(0.4, rgb(0,0,xc)) ; bleu , de bleu a :
			GradientColor(0.5, rgb(0,xc,xc)) ; cyan ,de Cyan a :
			GradientColor(0.6, rgb(0,xc,0));vert ,de Vert a :
			GradientColor(0.7, rgb(xc,xc,0));jaune , de Jaune a:
			GradientColor(0.8,rgb(xc,xc,xc));blanc
			LinearGradient(0, 0, 0, Haut)    
			box(xc, 0, xc,haut)   
		;next xc
		;}
		StopDrawing()
		
	EndIf
Endprocedure

voila ce que j'obtiens, au lieu d'une ligne verticale de 1 pixel en colonne 100
Image
Dernière modification par Backup le mer. 18/juin/2014 22:15, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: un Gadget Palette ....un ...

Message par Backup »

c'est bon !! j'ai pu avoir la couleur 255,255,255

mon canvas n'etais pas assez grand :roll:

mais cela ne resoud pas le probleme avec

XC=100
box(xc, 0, xc,haut)

mais on s'en fout c'est un detail :)
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: un Gadget Palette ....un ...

Message par SPH »

Le code du post 1 est corrigé ?
Si oui, il y a un enorme probleme de couleurs. Je vais me pencher demain la dessus; ca m'interesse de voir comment tu as fait.
Si non, peut tu poster ton code corrigé ?

Thx :)

!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.12LTS- 64 bits
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: un Gadget Palette ....un ...

Message par Backup »

voila :) (premier code page 1 )

pour une raison obscure, il semble que la souris n'est pas capturé par le canvas
si on pointe en haut a gauche ......

donc pas de couleur (0,0,0) pourtant elle y est !

alors que en bas a droite le RGB(255,255,255) s'affiche

ps; j'ai remis la capture sur mouvement de la souris , j'ai borné, normalement ça doit plus planter sur le point()
Dernière modification par Backup le mer. 18/juin/2014 22:56, modifié 2 fois.
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: un Gadget Palette ....un ...

Message par SPH »

A vue d'oeil bio-ionique, il manque de nombreuses couleurs !!! (Tu as pleins de doublons, de triplons,etc...)

La, je suis foncdé par les medocs mais demain, je m'y penche serieusement... 8)

a+

!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.12LTS- 64 bits
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: un Gadget Palette ....un ...

Message par Backup »

ps2 : il n'y a pas specialement de probleme lié a la couleur

si tu compare avec la palette prise en photo de GallyHC tu va trouver une difference
car lui change la luminosité de l'ensemble de la palette par le curseur a droite
alors que moi je cherche a afficher toutes les couleurs sur la surface

les teintes de haut en bas
la luminosité de gauche a droite

donc forcement ça n'affiche pas la meme palette :)

de toutes façon le probleme du box doit generer une erreur quelque part !

promene le curseur, pas 2 fois la meme teintes chez moi
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: un Gadget Palette ....un ...

Message par SPH »

Dobro a écrit :promene le curseur, pas 2 fois la meme teintes chez moi
BEAUCOUP de teintes identiques (du moins dans les noirs et blancs)
Ta palette d'avant etait beaucoup mieux ! (redonne la plz)

!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.12LTS- 64 bits
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: un Gadget Palette ....un ...

Message par Backup »

quelques petits changements ..
j'ai remis le code de Graph100 (mais j'ai aussi mis le miens en Rem )

ajout d'un box pour le control de la couleur choisi
un petit changement dans la procedure d'event ..

ajout d'un Box pour la couleur noir , qui pour une raison qui m'echappe ne peut se choisir dans la palette !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: un Gadget Palette ....un ...

Message par Ar-S »

J'ai repris ta procedure event_palette_gadget(num) pour d'une part, afficher la couleur survolée à la volée et d'autre part pour partager l'aperçu de la couleur sélectionnée au clic en scindant ta box. C'est bien plus intuitif ainsi je trouve.

Code : Tout sélectionner

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()
		         ProcedureReturn couleur
	         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()
		         ProcedureReturn couleur
	         EndIf
	         
	     Default
		     Capture = 0
		         
	EndSelect  
   

   ProcedureReturn -1
EndProcedure
~~~~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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: un Gadget Palette ....un ...

Message par Backup »

bonne idée , j'adopte :)
Répondre