VisualuRubyでボタンメニューを出す

  def select_vr(&block)
    require 'vr/vruby'
    require "vr/vrcontrol"
    frm = VRLocalScreen.newform
    $menu = @menu
    $block = block
    $ret = 0
    def frm.construct
      self.caption= $0
      $menu.size.times do |i|
        addControl(VRButton,"b"+i.to_s,$menu[i],4,20*i,300,18)
      end
      self.w = 300 + 20
      self.h = 20 * $menu.size + 32
    end
    def frm.func(i)
      eval("@b#{i}.caption='#'+@b#{i}.caption")
      $block.call(i) if $block
      $ret = i
    end
    $menu.size.times do |i|
      eval("def frm.b#{i}_clicked;func(#{i});end")
    end
    frm.create
    frm.show
    VRLocalScreen.messageloop
    $ret
  end

VisualuRuby は全然わかってない。つか、よくわからん。上記の様にしたらボタンが出るのはわかるんだけど…