カラーメーカS




#
#	カラーメーカS
#

#キャンバスのカラー初期設定
set red 0
set green 0
set blue 0
#カラーコード設定プロシージャ
proc setColor {} {
	global red green blue color
	set color [format "#%02x%02x%02x" $red $green $blue]
}
setColor

#カラー確認用キャンバス
canvas .c -height 60 -width 160 -bd 2 -relief groove -bg $color
.c create text 80 20 -text 確認用キャンバス -font "MSゴシック"

#カラーコード表示用ラベル
frame .fcode
label .fcode.l0 -text "#"
label .fcode.l1 -text "%02x"
label .fcode.l2 -text "%02x"
label .fcode.l3 -text "%02x"

#「赤」のスケール
frame .fr
label .fr.lr -text 赤 -font "MSゴシック"
scale .fr.sr -from 0 -to 255 -orient horizontal -tickinterval 100 \
	-showvalue true -length 160 -width 12 -variable red \
	-command getRed
#「緑」のスケール
frame .fg
label .fg.lg -text 緑 -font "MSゴシック"
scale .fg.sg -from 0 -to 255 -orient horizontal -tickinterval 100 \
	-showvalue true -length 160 -width 12 -variable green \
	-command getGreen
#「青」のスケール
frame .fb
label .fb.lb -text 青 -font "MSゴシック"
scale .fb.sb -from 0 -to 255 -orient horizontal -tickinterval 100 \
	-showvalue true -length 160 -width 12 -variable blue \
	-command getBlue

#「コピー」と「終了」のボタン
button .b1 -text クリップボードにコピー -font "MSゴシック 10" \
	-command copyCode
button .b2 -text 終了 -font "MSゴシック 10" -command exit

#各ウィジェットを配置
pack .c
pack .fcode
pack .fcode.l0 .fcode.l1 .fcode.l2 .fcode.l3 -side left
pack .fr .fg .fb
pack .fr.lr .fr.sr -side left
pack .fg.lg .fg.sg -side left
pack .fb.lb .fb.sb -side left
pack .b1 .b2 -side left -padx 5 -pady 4
wm resizable . 0 0
wm title . "カラーメーカS"

#「赤」スケールを動かしたときの処理
proc getRed {val} {
	.fcode.l1 configure -text [format "%02x" $val]
	setColor
	global color
	.c configure -bg $color
	update
}
#「緑」スケールを動かしたときの処理
proc getGreen {val} {
	.fcode.l2 configure -text [format "%02x" $val]
	setColor
	global color
	.c configure -bg $color
	update
}
#「青」スケールを動かしたときの処理
proc getBlue {val} {
	.fcode.l3 configure -text [format "%02x" $val]
	setColor
	global color
	.c configure -bg $color
	update
}

#カラーコードをクリップボードにコピー
proc copyCode {} {
	global color
	clipboard clear
	clipboard append $color
	tk_messageBox -message "$color をクリップボードにコピーしました。" \
		-title カラーコードのコピー
}


WSH 版HTA 版 もあります。

サンプルスクリプト集に戻る

Tcl/Tk でも遊んでみるに戻る