Create  Edit  Diff  Phillro Industries  Index  Search  Changes  History  Source  RSS  Note  wikifarm  Login

ApolloHomePageByWiki

Apollo Home Page(by Wiki)

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

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

Apollo = Delphi + Ruby

嘘か真か、まずは試してみてちょ。

What's new

2004-10-01

ap-840a released

関連するプロジェクト

Embedding Ruby in Kylix/Delphi は有用なパッケージです。お試しあれ。

プラットフォーム (OS)

Apollo は Delphi6 が動作可能な環境下で動作します。現時点では MS-Windows95/98/NT4.0 以降です。

将来、 Inprise が kylix をリリースした暁には Unix でも動くようになるかも、と淡い期待を抱いています。( 現状うまくいっ てません ) なお、 Delphi の配布可能なライブラリを使用しますので、 Delphi 自体は Apollo の実行に必要ありません。

ダウンロード

SourceForge.jp で配布しています。以下の説明を参考にしてダウンロードしてください。

初心者向けバージョンの最新版は SourceForge.jp - files のページに飛んでから msi 版の一番上にあるファイルを選んでください。

Apolloの配布パッケージの詳細についてはApollo-Packagesをご覧ください。

Apollo for Ruby-1.8.1

Apollo バイナリ + Ruby 本体 + Delphi6 実行時パッケージ(msiパッケージ

ap-840a.msi

bin, lib, doc, sample, VCL60, BDE, ruby 1.8.1 (2003-10-27) [i386-mswin32]

対象

  • Delphi6 をお持ちでない方
  • データベースを扱いたい方
  • 始めてダウンロードする方
  • msi パッケージをアップデートする方

注意

  • 含まれるバイナリ(*.exe, *.so) は ruby 1.8.1 mswin32 で動作します。

Apollo バイナリ + Apollo ソース(zipパッケージ?

ap-840a.zip

bin, lib, doc, sample, src for Delphi6

対象

  • Ruby, Delphi6 をお持ちの方
  • すでに msiパッケージで Apollo をインストール済みの方

注意

  • Ruby本体 (ruby.exe?, msvcrt-ruby18.dll?) は含んでいません。
  • 含まれるバイナリ(*.exe, *.so) は ruby 1.8.1 mswin32 で動作します。
  • msiパッケージでインストールした Apollo を zipパッケージでアップデートするためには、zipパッケージを展開した後、ディレクトリごと対応するディレクトリにコピーすればOKです。
  • zipパッケージでインストールすると、実行直後「開始エラー」と表示されるかもしれません。必要なファイルをコンピュータが見つけられなかったと思われます。たぶん、 VCL60 に関連するファイルがないのでしょう。検索してみて、もしなければ、MSI 版をインストールしてください。

Apollo for Ruby-1.6.8

Ruby 1.6 用の Apollo もあります。Ruby 1.6 版が必要な方は SourceForge.jp - files で ap-6xx.msi または ap-6xx.zip (「6」から始まる数字のもの)をお選びください。

  • 含まれるバイナリ(*.exe, *.so) は ruby 1.6.8 mswin32 で動作します。

BDE モジュール設定ファイル(Ruby-1.8.1 Ruby-1.6.8 共通)

データベースドライバをインストールするためには bdemerge.ini? を .msi と同じディレクトリに入れておく必要があります。

なお Delphi6 には (Personal を含めて) 標準で bdemerge.ini が用意されていますので Delphi6 をイ ンストールした環境では必要ありません。

CVS

SourceForge.jp - cvs

インストール

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

  • Apollo.exe による実行 : 展開しただけで apollo.exe による実行が可能になります。
  • ruby.exe? による実行 : コマンドプロンプトで ruby.exe を実行するためには、環境変数 PATH に Apollo.exe をインストールしたディレクトリを設定する必要があります。MSI 配布では、スタートメニューの プログラム -> Apollo から set_path_for_ruby? を実行してください。これで Ruby への パスが通ります。その後、再起動する必要があるかもしれません。
  • zip 配布では、あらかじめ Ruby 本体 (Ruby1.6.6) をインストールして ruby16-mswin32.dll? にはパスを通しておいてください。
  • mswin32 版 Ruby バイナリは Ruby-mswin32 などで配布されています。

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

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

Apollo.exe

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

Apollo_q.exe

Apollo.exe を -q オプションを付けて実行したのとほぼ同じです。

【カメレオン機能?】 このコマンドをスクリプトと同じ名前にすると、 同名のスクリプトを apollo_q.exe で実行します。

ruby_ap.exe

DOS console 実行環境。

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

ご注意

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

ruby_aw.exe?

スクリプトの所在地を適当に捜し出して実行します。この実行ファイルをスクリプトと同じ名前にするとそのスクリプト専用になります(カメレオン機能?)。

ruby.exe?

msiパッケージには ruby.exe も入っています。zipパッケージ?には入っていません。

AppPath.exe

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

ole.exe?

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

使い方

起動時のコマンドラインは 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 で書くと表現が自然で理解しやすいです。 (^-^)

1.jpg

コマンドプロンプトからでも同様に実行できます。(ただし、事前に環境変数 PATH 、 RUBYLIB を設定する必要があるかもしれません。ruby_ap.exe を使えば多少トラブルが少なくなるでしょう)。

2.jpg

メーリングリスト

Project Apollo ML に入ろう!!

日本語

ap-list

一般

ap-dev

開発

ap-ext

拡張ライブラリ

ap-doc

ドキュメント整備

英語

apollo-talk

文書

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

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

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

Update Information

古い Phi manual

古い Apollo問答 Phi 拡張ライブラリを書くために Apollo for win32 Apache

Apache を Apatch と綴ってしまう罠。

外部文書

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

Apollo チュートリアル by みずほちゃん

初めて Apollo に触れる方に読んでいただきたい解説書です。 Apollo Library by もりきゅう

Apollo コンポーネント の説明書です。 Apollo ドキュメントを書かなくちゃ by もりきゅう

組み込み Ruby の説明書 ( かなり中途半端 ) です。 Project Apollo 紹介記事 by もりきゅう

この記事は Delphi マガジンの Vol.13 で特集として発表されました。 最新版とは食い違う記述もあります。

書籍

デルファイマガジン Vol.13 2000/11/1 発行

『★特集:RubyとDelphi〜Apolloプロジェクト』 Ruby を 256+ 倍使うための本 紅玉制覇編

Ruby を 256 倍使う会 著 Ruby を 256 倍使うための本 黄道編 正誤表

author: YOSHIDA Kazuhiro

Sponsor : Cara Menaikan Posisi Website di Google | Cara Mudah Google

Last modified:2014/03/08 00:33:56
Keyword(s):
References:[ApolloHomePageByWikiEng] [雑談]