On Monday, 13 March 2023 at 10:27:54 UTC, snosniv wrote:
I have this simple working program to show what colours can be achieved by mixing the RGB parts, but is there a better way to call the proc from the command, rather than having globals in the proc?
##--------------------------------------------------------------------------------
## A simple program to explore what colours are possible by mixing the RGB parts
##--------------------------------------------------------------------------------
scale .sc1 -from 0 -to 255 -length 255 -variable rrr \
-orient vertical -label "Red slider" \
-tickinterval 16 -showvalue true \
-command colourchange
scale .sc2 -from 0 -to 255 -length 255 -variable ggg \
-orient vertical -label "Green slider" \
-tickinterval 16 -showvalue true \
-command colourchange
scale .sc3 -from 0 -to 255 -length 255 -variable bbb \
-orient vertical -label "Blue slider" \
-tickinterval 16 -showvalue true \
-command colourchange
# Initialise the colours to mid-range
set rrr 127
set ggg 127
set bbb 127
set red1 [expr ($rrr * 256 * 256)]
set grn1 [expr ($ggg * 256)]
set blu1 [expr ($bbb)]
set all1 [expr ($rrr * 256 * 256) + ($ggg * 256) + ($bbb)]
# Decimal to hex using format
set red2 [format "#%06x" $red1]
set grn2 [format "#%06x" $grn1]
set blu2 [format "#%06x" $blu1]
set all2 [format "#%06x" $all1]
label .lb1 -text "" -font {Arial 12 bold} -bg $red2
label .lb2 -text "" -font {Arial 12 bold} -bg $grn2
label .lb3 -text "" -font {Arial 12 bold} -bg $blu2
label .lb4 -text "" -font {Arial 12 bold} -bg $all2
grid .sc1 -row 0 -column 0
grid .sc2 -row 0 -column 1
grid .sc3 -row 0 -column 2
grid .lb1 -row 1 -column 0 -sticky ew
grid .lb2 -row 1 -column 1 -sticky ew
grid .lb3 -row 1 -column 2 -sticky ew
grid .lb4 -row 2 -column 0 -columnspan 3 -sticky ew
##------------------------------------------------------------------------------
proc colourchange {newcol} {
global rrr ggg bbb
set red1 [expr ($rrr * 256 * 256)]
set grn1 [expr ($ggg * 256)]
set blu1 [expr ($bbb)]
set all1 [expr ($rrr * 256 * 256) + ($ggg * 256) + ($bbb)]
# Decimal to hex using format
set red2 [format "#%06x" $red1]
set grn2 [format "#%06x" $grn1]
set blu2 [format "#%06x" $blu1]
set all2 [format "#%06x" $all1]
.lb1 configure -bg $red2
.lb2 configure -bg $grn2
.lb3 configure -bg $blu2
.lb4 configure -bg $all2
} ##------------------------------------------------------------------------------
TIA, KevP.
To add to the above, is it possible to make the slider numbers appear in Hex?
I can't see a way to do that?
Kev P.
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)