Changer la couleur de boutons
Philippe27-Oct-2006/17:17:01+2:00
Salut,

J'ai le code suivant qui permet de changer la couleur des boutons. Il me semble que plusieurs changements successifs conduisent à des couleurs incohérentes. Est-ce ma vue qui baisse, mon écran qui meurt ou un pb de block effect à remettre à blanc ?
Maître Didec, si tu passes par là ...

menu-button-color: ivory
view Win: layout [
	bouton: btn "Btn" 100x24 [
	if val: request-color [ 
	bouton/effect/colorize: val  
	]
	show bouton
	] with [ color: menu-button-color ]

	bouton2: button "TEST2" [
	if val: request-color [ 
	append bouton2/effect reduce ['colorize val] 
	]
	show bouton2
	] with [ 
	color: svvc/button
	effect: copy [fit] 
	]
]


===Philippe
shadwolf27-Oct-2006/18:04:11+2:00
moi je constate:
le premier bouton marche bien il prend la couleur qu'on lui donne

le 2eme devient de plus en plus sombre pour finir tout noir
quelque soit la couleur qu'on lui donne...
ce qui est normal car
append bouton2/effect reduce ['colorize val] 

va empiler les couleur dans un champs qui est pas fait pour
résultat ben comme y a plein plein de couleurs et que VID sais pas les gérer il fout tout en noir.

Une autre explication se serrait que les données de la liste des couleurs du au changement successif soit additionné par VID et comme au bout d'un certain nombre de couleurs empilées additionnées on tombe sur le max 255.255.255 on obtient au final un bouton de couleur noir.
ca expliquerait l'effet de fonçage progressif de ce bouton

si on remplace append par insert on a juste la premiere
couleur du changement qui est prise en compte les couleurs des changements suivant ne sont pas pris en compte

menu-button-color: ivory
view Win: layout [
	bouton: btn "Btn" 100x24 [
	if val: request-color [ 
	bouton/effect/colorize: val  
	]
	show bouton
	] with [ color: menu-button-color ]

	bouton2: button "TEST2" [
	if val: request-color [ 
	insert bouton2/effect reduce ['colorize val] 
	]
	show bouton2
	] with [ 
	color: svvc/button
	effect: copy [fit] 
	]
]


Un tour dans anaminitor nous renseignerait sur le contenu apres plusieur modifications de couleurs de l'objet VID boutton2
DideC28-Oct-2006/15:20:04+2:00
Tout juste, les 'colorize s'empilent dans le block, ce qui n'a guère d'intéret. il suffit de prober bouton2/effect avec un autre bouton pour s'en rendre compte.
johnatemps29-Oct-2006/9:02:39+1:00
additionnées on tombe sur le max 255.255.255 on obtient au final un bouton de couleur noir.
-> blanc, 255 c'est blanc
Philippe30-Oct-2006/15:50:52+1:00
Salut,

Désolé, le WE a été chargé, je n'ai pas trop regardé le forum.
Effectivement, si on fait un append, on ajoute le colorize, et au bout d'un moment, on tend vers le noir, mais avec un insert (code de shad), on n'a pas non plus la couleur souhaitée.
C'est peu visible avec des couleurs foncées, mais typiquement, avec du jaune (255.255.0), on n'obtient pas du jaune, alors même que le bloc effect ne contiendrait que [fit colorize 255.255.0].

Illustration avec le code suivant (où il faudra décommenter la ligne bouton2/colors ) :

menu-button-color: ivory
view Win: layout [
	bouton: btn "Btn" 100x24 [
	if val: request-color [ 
	bouton/effect/colorize: val  
	]
	show bouton
	] with [ color: menu-button-color ]

	bouton2: button "TEST2" [
	if val: request-color [ 
	bouton2/effect: copy [] 
	append bouton2/effect reduce ['fit 'colorize val] 
	;bouton2/colors: reduce [val val]
	]
	show bouton2
	] with [ 
	color: svvc/button
	effect: copy [fit]
	]
	bouton3: btn-help "EFFECT BT2" 80x20 [
		print form bouton2/effect 
	]
]



Ceci a cause de l'init du button.


===Philippe

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2