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
[ ツッコむ ]
以上です。