中村 のりつぐ です。

TkCanvas#lower, TkCanvas#raise が bug みたいです。

第二引数を tagid() に入れてから渡さなければいけないようです

#!/usr/bin/env ruby

require "tk"

class TkCanvas
  def lower(tag, below=None)
    tk_send 'lower', tagid(tag), tagid(below)
  end
  def raise(tag, above=None)
    tk_send 'raise', tagid(tag), tagid(above)
  end
end

c1 = TkCanvas.new {
  width 200
  height 200
  pack
}

oval1 = TkcOval.new(c1, 50, 50, 150, 150) {
  fill 'blue'
}

oval2 = TkcOval.new(c1, 75, 75, 175, 175) {
  fill 'yellow'
}

TkButton.new {
  text "c1.lower(oval1)"
  command proc { c1.lower(oval1) }
  pack('fill' => 'x')
}

TkButton.new {
  text "c1.lower(oval2)"
  command proc { c1.lower(oval2) }
  pack('fill' => 'x')
}

TkButton.new {
  text "c1.lower(oval1, oval2)"
  command proc { c1.lower(oval1, oval2) }
  pack('fill' => 'x')
}

TkButton.new {
  text "c1.lower(oval2, oval1)"
  command proc { c1.lower(oval2, oval1) }
  pack('fill' => 'x')
}

Tk.mainloop

       中村 典嗣  E-mail:     nnakamur / mxq.mesh.ne.jp