[ top ] [ prev ] [ up ] [ next ] Last-Modified: 2006/01/21

Project Apollo
Ruby Ring [ prev ] [ list ] [ home ] [ next ] Ruby.home

[ Japanese ] / [ English ] Hello, another way.

Delphi と Ruby 夢の共演 ! (^-^)

Apollo = Delphi + Ruby
嘘か真か、まずは試してみてちょ。

What's new

2005-12-29
ap-841a released

プラットフォーム (OS)

Apollo は Delphi6 が動作可能な環境下で動作します。現時点では MS-Windows95/98/NT4.0 以降です。
将来、 Inprise が kylix をリリースした暁には Unix でも動くようになるかも、と淡い期待を抱いています。( 現状うまくいってません )
なお、 Delphi の配布可能なライブラリを使用しますので、 Delphi 自体は Apollo の実行に必要ありません。

ダウンロード

内容の違いによって MSI 版, zip 版があります。

Apollo は SourceForge.jp で配布しています。

CVS リポジトリもあります。

Ruby 1.6 用の Apollo もあります。Ruby 1.6 版が必要な方は SourceForge.jp で ap-6xx.msi または ap-6xx.zip をお選びください。

BDE モジュール設定ファイル

bdemerge.ini
MSI 版でデータベースドライバをインストールするためには bdemerge.ini.msi と同じディレクトリに入れておく必要があります。
ただし Delphi6 には (Personal エディションを含めて) 標準で bdemerge.ini が用意されていますので Delphi6 をインストールした環境では必要ありません。

インストール

配布ファイルを展開してください。

MSI 配布では、スタートメニューの プログラム -> Apollo から set_path_for_ruby を実行してください。これで Ruby へのパスが通ります。その後、再起動する必要があるかもしれません。

zip 配布では、あらかじめ Ruby 本体 (Ruby1.6.6) をインストールして ruby16-mswin32.dll にはパスを通しておいてください。
mswin32 版 Ruby バイナリは Ruby-mswin32 などで配布されています。

Apollo に含まれる実行ファイル群

Apollo には、 .exe の拡張子を持つ実行ファイルがいくつかあります。

Apollo.exe
簡易エディタを備えた開発環境。

ruby_ap.exe
DOS console 実行環境。
Delphi 例外が飛んで捕捉されないとき、ruby.exe では『外部例外なんとか』と出て嫌な終了の仕方をしますが、ruby_ap.exe では普通に終了します。ただ、IO (stderr) まわりとか、微妙に動作が異なるのがネックです。

ご注意
ruby_ap.exe に何も付けないで実行すると標準入力からのスクリプトの入力待ちになります。あたかもハングしたかのように見えます。その場合には Ctrl+Z を押して入力待ちを終了させれば ok です。

AppPath.exe
Apollo.exe の所在地を Windows のレジストリに登録します。

ruby_aw.exe
スクリプトの所在地を適当に捜し出して実行します。この実行ファイルをスクリプトと同じ名前にするとそのスクリプト専用になります。

ole.exe
COM server です。 sample/ole/ole_simple.vbs を動かすためにあります。^^;

使い方

実行直後「開始エラー」と表示されるかもしれません。必要なファイルをコンピュータが見つけられなかったと思われます。たぶん、 VCL60 に関連するファイルがないのでしょう。検索してみて、もしなければ、MSI 版をインストールしてください。

起動時のコマンドラインは foo.rb となっています。これにより、 Apollo.exe を置いたそのフォルダの foo.rb をロードします。 foo.rb の内容がメモに表示されます。もしなければ失敗するので、メモは空欄のままです。

コマンドラインは自由に変更できます。空白で区切ることにより引数も指定できます。
  foo.rb foo.txt
[Execute] をクリックすると、コマンドラインを実行します。 [Browse...] をクリックすると、 [ ファイルを開く ] ダイアログを表示します。 [ 開く ] を選択すると、そのファイルを開きます。

[Terminate] をクリックすると、実行中の Ruby プロセスを終了します。 [Save] をクリックすると、メモの内容をコマンドラインで指定されたファイルに保存します。

Apollo とは

Delphi と Ruby を結びつける機構全体を総称して Apollo と呼んでいます。

rubymw.dll を Delphi から呼び出すために Ruby.pas を書いたのが、その始まりです。 MS-Windows アプリケーションは、コンソールアプリケーションとウィンドウアプリケーションとに大別できますが、オリジナル ruby は基本的にコンソールアプリケーションとして設計されています。 Ruby をウィンドウアプリケーションのエンジン部として使えると便利ではないかと考え、 Delphi VCL を Ruby 拡張ライブラリとして呼び出す機構を基礎に据えました。

Phi とは

Phi は Delphi VCL の Ruby 拡張ライブラリです。使い方は、ほかの Ruby 拡張ライブラリと同じです。すなわち、次のように書くことにより導入できます。
require 'phi'
以後、 VCL に対応するモジュールを呼び出せるようになります。手始めに、フォームを作って表示してみましょう。
form = Phi::Form.new
form.show
ボタンのクリックを捕捉するイベントハンドラを書いてみます。
btn = Phi::Button.new(form)
btn.parent = form
def btn.on_click
  print "click!\n"
end
最後に、イベントループに入るようにします。
Phi.mainloop
このように、 Ruby で書くと表現が自然で理解しやすいです。 (^-^)

メーリングリスト

Project Apollo ML に入ろう!!
FreeML メールアドレス

日本語
英語

文書

Apollo の文書は fdiary.net wikifarm に集めることにしました。

配布している Apollo のマニュアルその他の文書は pi 形式のテキストで納められています。

*.pi はそのまま読むこともできますが、*.html に変換することもできます。*.html に変換するには $(Apollo)/doc ディレクトリに入っている auto.rb か pi.rb を使います。auto.rb を apollo.exe で読み込んで実行すると、Apollo をインストールしたドライブに /ap-doc というディレクトリが作られ、そこに html 形式に変換された Apollo のドキュメントができあがります。

外部文書

みなさんの協力なしには今の Apollo は存在しえません。ありがとう。

書籍

関連するプロジェクト

author: YOSHIDA Kazuhiro
[ top ] [ prev ] [ up ] [ next ]