次のように機能する入力行と単一のボタンを備えたウィンドウを作成する必要があります。
ボタンには「CAPS」というラベルが付けられ、ボタンを押すと、入力行のテキストが大文字に変わります。同時に、ボタンのラベルが「小さい」になり、もう一度押すと、入力行のすべての文字が小文字になり、ボタンには再び「CAPS」というラベルが付けられ、機能がリセットされます。
「アルゴリズム」が非常に基本的なものである場合、tcl で遭遇した最大の問題は、少し奇妙に思える次の構文です。
#!/usr/bin/env wish
pack [entry .e]
pack [button .b -text "Uppercase" -command "ToggleCase"]
proc ToggleCase {} {
set temp [.e get]
.e delete 0 end
if {[.b cget -text] eq "Uppercase"} {
.e insert 0 [string toupper $temp]
.b configure -text "Lowercase"
} else {
.e insert 0 [string tolower $temp]
.b configure -text "Uppercase"
}
}