mieki256's diary



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() 等を開くと、その後、マウスクリックが検出できなくなってしまうような…?

とりあえず検証用のスクリプトをメモ。画面の上・中・下でマウスクリックすれば状態を確認できる。
#!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

以上です。

過去ログ表示

Prev - 2013/08 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project