From: Noritsugu Nakamura Date: 2001-03-11T10:44:31+09:00 Subject: [ruby-list:28680] TkCanvas#delete bug 中村 のりつぐ です。 Ruby/Tk Canvas チェック中です。 TkCanvas で 複数の tagOrId を引数に取る TkCanvas#delete が bug っているようです。 def delete(*args) tk_send 'delete', *args end となっているのですが、tagid() をかましてから 渡さなくてはいけないみたいです。 マニュアルを見ると TkCanvas#bbox も 複数の tagOrId を 引数に取るようで、まだ試していないですが、これも まずい可能性大です。今はこう↓なっています def bbox(tagOrId, *tags) list(tk_send('bbox', tagid(tagOrId), *tags)) end とりあえず、こう↓してみました #!/usr/bin/env ruby require "tk" class TkCanvas def delete(*args) args.each{|tag| tk_send 'delete', tagid(tag)} end end c1 = TkCanvas.new { width 200 height 200 pack } oval = TkcOval.new(c1, 10, 10, 20, 20) { fill 'blue' } TkButton.new { text 'c1.delete(oval)' command proc { c1.delete(oval) } pack('fill' => 'x') } Tk.mainloop 中村 典嗣 E-mail: nnakamur@mxq.mesh.ne.jp