hakeの日記

Windows環境でプログラミングの勉強をしています。

Ruby/TkのComboBox

Ruby/Tkでは標準で?ComboBox(プルダウンメニュー)が無いようですね。拡張ライブラリを覗くと3種類のComboBoxがありましたが、Rumix2の環境では前者2つは別途ライブラリをインストールしないと動作しないようです。

/tkextlib/bwidget/combobox.rb
/tkextlib/iwidgets/combobox.rb
/tkextlib/tile/tcombobox.rb
続きを読む

Rumix2 - Windows上でのRubyのプログラム環境

Ruby2.0系になってActiveScriptRubyがvisualurubyを同梱しなくなった為、気軽にGUIプログラムができる方法を探していたところ、Rumix2というパッケージを見つけました。
MinGW版のRuby(現在のバージョンはruby 2.0.0p451 (2014-02-24) [i386-mingw32])とRuby/tk、Devkitやocraが一括でインストールされるので簡単に環境が作れて便利です。USB Rumix 2 miniという軽量パッケージもあるので、とりあえずRuby/tkだけ使用したい場合にはこちらを使用すると良いです。

環境整備

  • rumix2をc:\rumix2にインストール(或はUSB版を展開)
  • 作業ディレクトリとしてc:\rumix2\homeを作成
  • 端末ckwの色を変えたい場合は、C:\rumix2\ckw.cfgを編集
  • 端末起動時にhomeディレクトリへ移動と、コマンドプロンプトにフルパスを表示させるためにC:\rumix2\shell\nyaos\_nyaを修正
# コマンドプロンプト修正
#option prompt $e[31;40;1m[$w]$_$$ $e[37;1m
option prompt $e[31;40;1m[$p]$_$$ $e[37;1m


# 端末起動時にhomeディレクトリへ移動(ファイルの最後に追加)
cd home

RubyスクリプトのGUIをHTAに(続き)

ruby-listのANNをみると、HTARubyスクリプトを動かすこともできるらしい。
昨日のHTAを書き換えて、外部のrubyスクリプト呼び出しを止めて、表示メソッドをそのままHTA内に記述してみる。
rubyがインストールされているPCでの使用であれば、こちらの方がお手軽に使用が可能。

続きを読む

RubyスクリプトのGUIをHTAに

rubyで作成した簡易ツールをVisualurubyでGUI化して使用していたのだけれど、ActiveScriptRubyが2.0以降Visualurubyを同梱しなくなってしまったので、その代替策としてGUI部分をHTA(HTML Application)に置き換えてみる実験。
HTA上で選択したファイルパスをWSHrubyスクリプトへ渡し、rubyスクリプトは文字列をそのまま返すので、HTAの表示エリアに表示させるプログラム。

続きを読む

サクラエディタの外部マクロとしてrubyを使う その2

前回と同じことをするマクロのJScript部分をVBScriptに書き直ししてみました。
んー、細かい文法がJScriptを異なっているのでちょっと面倒かも。

続きを読む

サクラエディタでRubyを使う

サクラエディタRuby用(拡張子.rb)に設定する。

  • サクラエディタ本体は、こちらから、sinst2-0-4-0.exeをダウンロードしてインストール
  • Ruby用の設定ファイル自体は既に同梱されていたので、こちらのRubyDef.lzhのreadme.txtに従って設定する。
  • 外部HTMLヘルプは、こちらchmファイルを設定する。


以下、RubyDef.lzhのreadme.txtの内容

続きを読む

サクラエディタの外部マクロとしてrubyを使う

検索してみるとエディタからJScriptのマクロを呼び出して、その中でrubyスクリプトを呼べば良いみたい。
試してみるとrubyスクリプトの標準出力は、そのままエディタ上のカーソル位置に挿入される様です。JScriptマクロからrubyスクリプトへテキストを渡すには、一旦一時ファイルに出力してファイルを介して行う方法と、そのままrubyスクリプトの標準入力へパイプで渡す方法を試して見ましたが、後者の方がファイルの生成が無い分処理が速い様です。ただし渡すテキスト内に改行があると後者の方法は使えません。

勉強で、行頭にその行の文字数を挿入するマクロを作って見ました。

foobar
あいうえお

このテキストが

[size = 6]foobar
[size = 5]あいうえお

の様になります。JScriptマクロでは先頭行から順に改行コードを削除した文字列をRubyスクリプトに渡し、Rubyスクリプト側ではその文字数を標準出力に出力しているだけです。
当初Rubyスクリプトへ文字列を渡すのにechoコマンドを使用してみたのですが強制的に改行が入ってしまいパイプが繋がらないので、対処方法としてこちらの記事を参考にさせていただきました。

続きを読む