2013/08/04(日) [n年前の日記]
#1 [ruby] DXRuby 1.5.2dev版を導入
DXRuby 1.5.2dev版が公開されていたので、Ruby 1.9.x対応版のほう導入してみたり。
手元の環境では、先日気付いた不具合2点が ―― win32oleとの同時利用、SoundとAyameの同時利用時の不具合が解決されているように見えました。ありがたや。あまりにも迅速な対応に頭が下がります。
と喜んでたら、1.5.2dev版にも気になる動作を見つけてしまったかもしれず。Window.openFilename() 等を開くと、その後、マウスクリックが検出できなくなってしまうような…?
とりあえず検証用のスクリプトをメモ。画面の上・中・下でマウスクリックすれば状態を確認できる。
手元の環境では、先日気付いた不具合2点が ―― win32oleとの同時利用、SoundとAyameの同時利用時の不具合が解決されているように見えました。ありがたや。あまりにも迅速な対応に頭が下がります。
と喜んでたら、1.5.2dev版にも気になる動作を見つけてしまったかもしれず。Window.openFilename() 等を開くと、その後、マウスクリックが検出できなくなってしまうような…?
とりあえず検証用のスクリプトをメモ。画面の上・中・下でマウスクリックすれば状態を確認できる。
#!ruby -Ks # -*- mode: ruby; encoding: sjis -*- # DXRuby で openFilename() 等の実行後、マウスクリックが検出不可になる症状のテスト require 'dxruby' require 'win32ole' fnt = Font.new(12) fpath, dpath = "", "" Window.loop do Window.bgcolor = [0, 0, 0] break if Input.keyPush?(K_ESCAPE) if Input.mousePush?(M_LBUTTON) my = Input.mousePosY if my < Window.height / 3 Window.bgcolor = [255, 0, 0] # 背景色を赤に elsif my < Window.height * 2 / 3 path = Window.openFilename([["ALL Files (*.*)", "*.*"]], "ファイル選択") fpath = (path != nil)? path : "cancel" else app = WIN32OLE.new('Shell.Application') path = app.BrowseForFolder(0, "フォルダ選択", 0) if path begin dpath = path.Items.Item.path rescue dpath = "?" end else dpath = "cancel" end end end l = ["画面の上側でクリック : 画面フラッシュ", "画面の真ん中でクリック : Window.openFilename()", "[#{fpath}]", "画面の下側でクリック : WIN32OLE + ダイアログ", "[#{dpath}]", ] x, y = 16, 16 l.each do |s| Window.drawFont(x, y, s, fnt) y += fnt.size + 16 end x0, x1 = 0, Window.width y = Window.height / 3 Window.drawLine(x0, y, x1, y, C_WHITE) y = Window.height * 2 / 3 Window.drawLine(x0, y, x1, y, C_WHITE) end
[ ツッコむ ]
以上です。