[#39984] ruby/tk のイベントハンドラをまとめて設定するには? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
9 messages
2004/09/01
[#39989] TCPSocket.new でスレッドが止まる。 — take_tk <ggb03124@...>
たけ(tk)です。
15 messages
2004/09/02
[#39992] Re: TCPSocket.new でスレッドが止まる。
— nobu@...
2004/09/02
なかだです。
[#39993] Re: TCPSocket.new でスレッドが止まる。
— take_tk <ggb03124@...>
2004/09/02
たけ(tk)です
[#39996] Re: TCPSocket.new でスレッドが止まる。
— Yukihiro Matsumoto <matz@...>
2004/09/02
まつもと ゆきひろです
[#40013] ruby/tkについて — skoba@... (KOBAYASHI Satoshi)
小林@島根大学です。
5 messages
2004/09/07
[#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
岩月と申します。
[#40022] Re: yaml.rbとdate.rbを組み合わせて使った際の問題
— nobu@...
2004/09/07
なかだです。
[#40028] Re: yaml.rbとdate.rbを組み合わせて使った際の問題
— Yukihiro Matsumoto <matz@...>
2004/09/07
まつもと ゆきひろです
[#40033] Re: yaml.rbとdate.rbを組み合わせて使った際の問題
— nobu@...
2004/09/08
なかだです。
[#40035] Re: yaml.rbとdate.rbを組み合わせて使った際の問題
— Yukihiro Matsumoto <matz@...>
2004/09/08
まつもと ゆきひろです
[#40021] 動的なクラス名 — "fuji@..." <fuji@...>
藤岡です。
9 messages
2004/09/07
[#40056] Ruby本読書会 — MoonWolf <moonwolf@...>
MoonWolfです。
7 messages
2004/09/18
[ruby-list:39988] Re: ruby/tk のイベントハンドラをまとめて設定するには?
From:
nobu@...
Date:
2004-09-02 00:17:56 UTC
List:
ruby-list #39988
なかだです。
At Wed, 1 Sep 2004 20:43:13 +0900,
H.Yamamoto wrote in [ruby-list:39984]:
> ところが、コメントを外すと(つまり、外側のスコープに同名の変数があると)常に 3 しか
> 表示しなくなります。理由は http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Proc
> でわかったのですが、Ruby2 では r はブロックローカルでなくなると聞いたので、コメントを
> 外さなくても常に 3 が表示されるようになると思います。
>
> Javaだと
>
> for (int i = 0; i < 3; ++i) {
> final Rectangle r = .....
> ....addActionListener(new ActionListener(){
> public void actionPerformed() {
> print r.toString();
> }
> }
> }
>
> とすれば、ループごとの r が actionPerformed にバインドされるのですが、ruby で将来にわたって
> 安全なやりかたというのは、どういった形になりますか?
逆に、ブロック引数は外側のスコープに同名の変数があっても常にブ
ロックローカルになる予定です。
module Kernel
def let(*values)
yield(*values)
end
end
require "tk"
TkCanvas.new {
3.times {|i|
h = i * 50
let(TkcRectangle.new(self, 100 + h, 100 + h, 200 + h, 200 + h, :fill => :white)) {|r|
r.bind "ButtonPress-1", proc { p r.id }
}
}
pack
}
Tk.mainloop
個人的には、こういうのもどうかなと思ってるんですが、多値がArray
から分離されるとちょっと使いづらいかも。
module Kernel
def as
yield(self)
end
end
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦