当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby WIN32OLE_EVENT#handler=用法及代码示例


本文简要介绍ruby语言中 WIN32OLE_EVENT#handler= 的用法。

用法

WIN32OLE_EVENT#handler=

设置事件处理程序对象。如果 handler 对象根据 XXX 事件有 onXXX 方法,则在 XXX 事件发生时调用 onXXX 方法。

如果处理程序对象有 method_missing 并且没有根据事件的方法,则调用 method_missing 并且第一个参数是事件名称。

如果 handler 对象有 onXXX 方法,并且有 WIN32OLE_EVENT#on_event (‘XXX’){} 定义的块,则执行块,但在 XXX 事件发生时不调用处理程序对象方法。

class Handler
  def onStatusTextChange(text)
    puts "StatusTextChanged"
  end
  def onPropertyChange(prop)
    puts "PropertyChanged"
  end
  def method_missing(ev, *arg)
    puts "other event #{ev}"
  end
end

handler = Handler.new
ie = WIN32OLE.new('InternetExplorer.Application')
ev = WIN32OLE_EVENT.new(ie)
ev.on_event("StatusTextChange") {|*args|
  puts "this block executed."
  puts "handler.onStatusTextChange method is not called."
}
ev.handler = handler

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 WIN32OLE_EVENT#handler=。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。