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 日分です。