2016/01/13(水) [n年前の日記]
#1 [dxruby][dxrubyws] DXRubyWSでテキストボックスを表示してみる
自作キャラグラエディタを作っていた際に、困ってしまった点があって。テキストボックス(1行分のテキスト入力ができるGUI部品)を実装するかどうかで悩んだというか。
新規キャンバスを作る際に、キャンバスサイズを入力して新規作成したかったのだけど。サイズを入力するためには、テキストボックスが必要だよなと。でも、実装が絶対に大変だよなと。なので、そのへん、結局諦めてしまったのですが。しかし、DXRubyWSを使えば、そこらへんを解決することができるのかもしれない…。
ということで、DXRubyWSでテキストボックスを表示できるか試してみようと。
ググってみたら、DXRuby, DXRubyWS作者様の、はてな日記記事がヒットした。
_DXRubyWSでのアプリ開発を考える - mirichiの日記
サンプルとして書かれてるソースの中で、テキストボックスが使われてる。ありがたや。ほとんどそのまま写経させてもらって動作確認してみたり。
_textbox_test.rb
_lib/StandardGUI/textbox.rb を眺めると、
新規キャンバスを作る際に、キャンバスサイズを入力して新規作成したかったのだけど。サイズを入力するためには、テキストボックスが必要だよなと。でも、実装が絶対に大変だよなと。なので、そのへん、結局諦めてしまったのですが。しかし、DXRubyWSを使えば、そこらへんを解決することができるのかもしれない…。
ということで、DXRubyWSでテキストボックスを表示できるか試してみようと。
ググってみたら、DXRuby, DXRubyWS作者様の、はてな日記記事がヒットした。
_DXRubyWSでのアプリ開発を考える - mirichiの日記
サンプルとして書かれてるソースの中で、テキストボックスが使われてる。ありがたや。ほとんどそのまま写経させてもらって動作確認してみたり。
_textbox_test.rb
# DXRubyWSでテキストボックスを表示してみるテスト
require_relative 'lib/dxrubyws'
require_relative 'lib/standardgui'
module WS
class TextBoxWindow < WSWindow
def initialize(*args)
super
# テキストボックスを生成して追加
x, y = 16, 16
w, h = 200, 24
@txtbox = WS::WSTextBox.new(x, y, w, h)
client.add_control(@txtbox)
# テキストボックスの内容を設定
@txtbox.text = "320"
# ボタンを生成して追加
x += @txtbox.width
w, h = 80, 24
@btn = WS::WSButton.new(x, y, w, h, "Button")
client.add_control(@btn)
# ボタンが押された時の処理を登録
@btn.add_handler(:click, self.method(:on_click))
end
# ボタンが押された時の処理
def on_click(obj, tx, ty)
# メッセージボックスを生成して画面に登録
msgbox = WS::WSMessageBox.new("Message", "TextBox = #{@txtbox.text}")
WS.desktop.add_control(msgbox)
end
end
end
window = WS::TextBoxWindow.new(8, 8, 360, 96, "TextBoxWindow")
WS.desktop.add_control(window)
Window.loop do
WS.update
end
テキストボックスが表示された。ボタンを押した時の処理の中で、テキストボックスの内容を取得することもできている。_lib/StandardGUI/textbox.rb を眺めると、
WS::WSTextBox.new(tx, ty, sx, sy)の引数を渡して生成するらしい。tx, ty は表示位置だろうけど、sx, sy は何だろう? その2つを、Image.new() に渡してるから…おそらく横幅、縦幅みたいなものかしら。
[ ツッコむ ]
#2 [nitijyou] 歯医者に行ってきた
詳細はGRPでメモ。
[ ツッコむ ]
#3 [pc] A8-3850機の動作確認を開始
Amazonに注文していたシルバーグリス
*1
が届いたので、正月に弟が持ってきてくれた、AMD A8-3850 + M/B GIGABYTE GA-A75M-UD2H 等の一式を、まな板上で組んで動作確認開始。
CPUクーラーは、弟がゴイスなクーラーも持ってきてくれたのだけど。親父さんPCの省スペースケースに収まるとは思えないので、AMD CPU に同梱されてるリテールCPUクーラーを素直につけてみたり。音がうるさいらしいけど…どのくらいうるさいのだろう…。
組んでから、USBメモリに入ってるUBCDを起動して、memtest86+ をかけてるけど、今のところエラーはない模様。
と思ったけど、BIOS設定で、Load Fail-Safe Defaults を設定してからチェックをしたことを忘れてた。できれば Load Optimized Defaults のほがうがいいかな…。そっちにしてエラーが出なければいいけど。
CPUクーラーは、弟がゴイスなクーラーも持ってきてくれたのだけど。親父さんPCの省スペースケースに収まるとは思えないので、AMD CPU に同梱されてるリテールCPUクーラーを素直につけてみたり。音がうるさいらしいけど…どのくらいうるさいのだろう…。
組んでから、USBメモリに入ってるUBCDを起動して、memtest86+ をかけてるけど、今のところエラーはない模様。
と思ったけど、BIOS設定で、Load Fail-Safe Defaults を設定してからチェックをしたことを忘れてた。できれば Load Optimized Defaults のほがうがいいかな…。そっちにしてエラーが出なければいいけど。
◎ 2016/01/15追記。 :
A8-3850 と書くべきところを、A8-3650 と書いてたので修正。
*1: シルバーグリスは、CPUとCPUクーラーの間に塗って熱伝導を高めるグリス。一般的にはシリコングリスが使われるけど、それよりちょっとは熱伝導が良いらしい。
[ ツッコむ ]
以上、1 日分です。
