[#39989] TCPSocket.new でスレッドが止まる。 — take_tk <ggb03124@...>

たけ(tk)です。

15 messages 2004/09/02

[#40018] yaml.rbとdate.rbを組み合わせて使った際の問題 — "Keisuke Minami" <keisuke@...>

こんにちは。三並と申します。

14 messages 2004/09/07
[#40020] Re: yaml.rbとdate.rbを組み合わせて使った際の問題 — IWATSUKI Hiroyuki <don@...> 2004/09/07

岩月と申します。

[ruby-list:39987] Re: ruby/tkのイベントハンドラをまとめて設定するには?

From: "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date: 2004-09-01 23:07:34 UTC
List: ruby-list #39987
山本です。

>以下は参考になりますか?
>
>-----------------------------------------------------------
>require 'tk'
>
>r = nil
>
>cmd = proc{|w, x, y, id|
>             p [w, id]
>             p TkcItem.id2obj(w, id.to_i)
>             p w.find_withtag(id)
>             p w.find_withtag('current')
>             p w.find_closest(x, y)
>           }
>
>TkCanvas.new {
>  3.times {|i|
>    h = i * 50
>    r = TkcRectangle.new(self, 100 + h, 100 + h, 200 + h, 200 + h, 
>                         :fill => :white)
>    r.bind('1', cmd, "%W %x %y #{r.id}")
>    #                ^^^^^^^^^^^^^^^^^^
>    #        空白で split されて cmd に引き渡されます.
>    #        '%'置換は解釈の上で適当なクラスのオブジェクトに変換されますが,
>    #        それ以外は文字列のまま引き渡されます.
>    #        この場合は r.id を文字列化したものが渡されます.
>  }
>  pack
>}
>
>Tk.mainloop

ありがとうございます。参考になります。

    @cells = []
    for iy in 0...6
      for ix in 0...7
        cell(ix, iy + 1){|r,t|
          @cells << Struct.new(:rect, :text, :date).new(r, t, nil)
          r.bind "ButtonPress-1", proc {|i| cal.date = @cells[i.to_i].date }, "#{ix + iy * 7}"
          t.bind "ButtonPress-1", proc {|i| cal.date = @cells[i.to_i].date }, "#{ix + iy * 7}"
        }
      end
    end

でうまくいきました。

In This Thread