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.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 498 |
Nodes: | 16 (3 / 13) |
Uptime: | 30:20:01 |
Calls: | 9,798 |
Calls today: | 17 |
Files: | 13,749 |
Messages: | 6,188,695 |