From: kgt@...3web.ne.jp Date: 2001-03-20T21:22:40+09:00 Subject: [ruby-list:28878] Re: Gtk.timeout_add の記事において JST時間2001年03月20日(火)21時00分13秒頃、西尾さんは書きました。 >>どうも西尾です。 ども桑形です。 #ここでは始めまして :-) >>下のようなスクリプトを実行して、 >>ボタンを押す度にコンソールに出力される数字が >>だんだん大きくなることを確認しました。 >> >>次に「ここ」と書いてある行のコメントを外して >>実行したのですが、何回ボタンを >>押しても「1」しかコンソールに出力されません。 >>これはこういう仕様なのでしょうか? Gtk::timeout_addで指定するイテレータは、戻り値がTRUE(もしくは 相当品)でないとサイクリックな起動が行われません。 ソース中では >>Gtk::timeout_add(100) do >> hoge >> #p $i # <= ここ >>end となっていますが、最終の式の値が"p $i"の結果になりますので nilになりflaseと同じになります。 したがって、コメントを外した場合はこのtimeoutハンドラがワン ショットのハンドラになるためです。 件の行の位置を差し替えて >>Gtk::timeout_add(100) do >> p $i # <= ここ >> hoge >>end とすると、期待(?)の動作になるのではないでしょうか。 ζ ---- ^^y- くわがた@自宅 kgt@topaz.ocn.ne.jp − 年年歳歳花相似 歳歳年年人不同 −