コマンドオプションで変数を渡す際に問題が発生しました。次に例を示します。
package require Tk
wm withdraw .
destroy .button
toplevel .button
# button.0: puts 0
set count 0
button .button.$count -text $count -command {puts $count}
grid .button.$count -column $count -row 0
# button.1: puts 1
incr count
button .button.$count -text $count -command {puts $count}
grid .button.$count -column $count -row 0
ただし、button.0は0ではなく1を設定します。button.0が呼び出されると、その時点での変数の値である1を取得するようです。
プロシージャとグローバル変数を使用して目的の結果を達成できることはわかりましたが、プロシージャの呼び出しに頼らずにこれを達成できるかどうかを知りたいと思います。
前もって感謝します。