中村です。

tk4.2 に付属の widget demo の vscale.tcl を
コンバートしているのですが、また分からない
ことが出てきました。

 : scale $w.frame.scale -orient vertical -length 284 -from 0 -to 250 \
 :     -command "setHeight $w.frame.canvas" -tickinterval 50
 (略)
 : proc setHeight {w height} {
 (略)
 : }

という行があるのですが、これをどう
処理したらいいのかという問題です。
関数の引数は2つなのに -command では
1つしか指定していません。

「Tcl/Tk プログラミング入門」を見たら
「スケールの値が変更されたときに、
実行する Tcl コマンドを指定します。
このコマンドには、スケールの新しい
値を示す数値が引数として自動的に付きます。」
と書いてありました。

しかし ruby で
def setWidth(w, height) と書くと
引数の数が違うと怒られてしまうのです。

scale.get() というので値を得ることも
できるようなのですが、なぜか挙動が
違ってしまいます。

よろしくお願いします。

         中村典嗣@京都大学大学院工学研究科電子通信工学専攻
         E-mail:        nnakamur / tamaru.kuee.kyoto-u.ac.jp