ApolloプログラミングTips

Apolloを本格的に使い始めてまだ2,3ヶ月の私が書くのもなんですが、今までApolloを使ってプログラムを作るときのTipsを まとめておきます。

Rubyスクリプトの編集環境

ApolloにはApollo.exeというスクリプトの編集/実行環境が付いている。

Apollo.exe

この環境はちょっと試してみる分にはいいのだが、、本格的なツールを作るなら、ちゃんとしたテキストエディタを使わないといけない。 その場合、Rubyスクリプトである*.rbをダブルクリックした時はテキストエディタが開いてほしい。

Apolloをインストールすると、*.rbをダブルクリックするとそのスクリプトを実行するように設定されているため、まずはこの設定を変える(以下の説明はWindowsXPの場合)。

  • エクスプローラで[ツール/フォルダオプション]メニューを選び、「ファイルタイプ」タブからRBファイルを探す

Apollo.exe

  • [変更]ボタンを押して、自分のテキストエディタを選ぶ

Apollo.exe

これで、ファイルのダブルクリックでテキストエディタが開くようになる。

Rubyスクリプトの実行環境

スクリプトの実行はコマンドプロンプトから実行するほうが効率がいい。Apolloのスクリプトはruby_apで実行できる。

  • [スタート/プログラム/アクセサリ/コマンドプロンプト]メニューでコマンドプロンプトを開く
  • スクリプト置き場がD:\RubyScripts\xxx_tool であるなら、以下のコマンドでスクリプトをおいているフォルダに移動する
  d:
  cd \RubyScripts\xxx_tool
  
  • 実行したいスクリプトがstart.rb であるなら、以下のコマンドでスクリプトを起動できる。ruby.exeではApolloの機能を使ったGUI系のスクリプトは実行できない。
  ruby_ap -Ks start.rb
  
  • ruby_apで実行した場合、スクリプト中でputs などを使って出力したコメント情報などはコマンドプロンプトの画面に表示されるし、エラーも同じくコマンドプロンプト中に表示される。
  • スクリプトを変更し、もう一度、実行する場合は、↑キーを使えば、前に打ち込んだコマンドを呼び出せるため、スクリプトの再実行も簡単にできる

VCLのヘルプを使いこなす

ApolloでGUIのプログラミングをするには、VCLが提供しているGUIコントロールを使いこなす必要がある。ボタンやラベルくらいだったら、Apolloで提供されている豊富なサンプルを見ればだいたいの使い方はわかる。しかし、ListViewコントロールやUpDownコントロールのようなちょっと複雑な機能を持つコントロールになると、VCLのヘルプをみないと手に負えないと思う。

例えばListViewコントロールについてどんなプロパティ、メソッド、イベントがあるかを調べたかったら、VCLリファレンスヘルプを使うとよい。 ListViewはDelphi上ではTListViewクラスで表されているので、「アルファベット順」で「TListView」を探せばいい。

VCLでコントロールを見つけたら、そのコントロールが持つプロパティやメソッドの一覧がわかる。TListViewには"BorderStyle"や"Columns"というプロパティがあるのがわかる。

一方、ApolloのPhiでは、ListViewはPhi::ListViewクラスで表されている。このクラスには、"border_style"や"columns"というメソッドが定義されている。このように、 VCLで定義されているプロパティやメソッドはある法則でPhiのメソッドに変換されている。Rubyのメソッドは大文字で始められないので、"BorderStyle"→"border_style"に変換されるわけだ。

このようなことを知っていれば、VCLで調べたことをApolloのスクリプトに適用して、かっこいいスクリプトが書けるようになる(に違いない)。

ただし、VCLが提供しているすべてのプロパティやメソッドが使えるようになっているとは限らない。 Phi::ListViewクラスがどんなメソッドを持っているか調べたかったら、以下のようなスクリプトを書けばいいだろう。

  require 'phi'
  
  form = Phi::Form.new(:form1,  'サンプル')
  listview = Phi::ListView.new(form,  :listview1, '')
  puts listview.methods.sort.join("\n")
  

もし、VCLが提供しているプロパティやメソッドでApolloで実装されていなかったら、Project Apollo MLに自分がやりたいことをうまく伝えれば、Apolloに希望するメソッドやプロパティを組み込んでくれるかもしれない。 お願いしてみよう。

Phi.soを自分でコンパイルする

Apollo MLでお願いしたプロパティやメソッドを組み込んでくれたら、Phi.soを自分でコンパイルしよう。というのも、Apolloの正式リリースは数ヶ月に一度 なので、メソッドやプロパティが追加されたPhi拡張ライブラリは自分でコンパイルするのが基本だ。

Phi.soをコンパイルするには、Delphiが必要。 だいたい以下の方法でコンパイルできるはず。フォルダ名とかは適当に自分の環境に合わせて読み替えること。

  • Apolloは D:\Apollo\bin で動作しているとする
  • Delphi6Personal は C:\Program Files\Borland\Delphi6 にインストールされているとする
  • SourceForge.jp からap-839a.zipなど、ソースコードを含むパッケージをダウンロードする
  • ZIPファイルをd:\tool\apollo の下に展開(d:\tool\apolloの下に、src,tmp,binなどが並ぶ)
  • d:\tool\apollo\src にあるconf_opt.sample をconf_opt.rb にリネーム
  • d:\tool\apollo\src\conf_opt.rb をテキストエディタで開き、2個所変更。
  --------------------------------------
  # DELPHI_EDITION = 'ent' # for Delphi Enterprise
  DELPHI_EDITION = 'pro' # for Delphi Professional
  # DELPHI_EDITION = 'per' # for Delphi Personal
  --------------------------------------
  

を以下のように変更(Delphi6 Personalだから)。

  --------------------------------------
  # DELPHI_EDITION = 'ent' # for Delphi Enterprise
  # DELPHI_EDITION = 'pro' # for Delphi Professional
  DELPHI_EDITION = 'per' # for Delphi Personal
  --------------------------------------
  

あと、もう一箇所変更。

  ------------------------------------
   DIR_PAIR_LIST = [
     ['C:\DelphiX\Source', 'D:\DelphiX\Source'],
     ['C:\Program Files\Borland\Delphi6\Lib', 'D:\usr\lib\delphi'],
     ['C:\Program Files\Borland\Delphi6', 'D:\Borland\Delphi6'],
     ['C:\Program Files\apollo', 'D:\usr\src\apollo\apollo'],
   ]
  ------------------------------------
  

を以下のように変更。

私の場合、Delphiはデフォルトでインストールしたので、ファイル内の説明に従って、右側を空欄に変更。 ファイル内のコメントにあるように、左側は変更する必要はない。

  • 3番目の項目は、Apolloの設定。私の場合、現在使っているApolloはD:\Apollo\binにインストールしてあるが、それを 指定するわけでなない。あくまでソースを展開したフォルダを指定するんだと思う。

あくまで、ソースを展開したフォルダを指定する。

1番目は何のディレクトリかよくわからなかったので、変更せず。

  ------------------------------------
   DIR_PAIR_LIST = [
     ['C:\DelphiX\Source', 'D:\DelphiX\Source'],
     ['C:\Program Files\Borland\Delphi6\Lib', ''],
     ['C:\Program Files\Borland\Delphi6', ''],
     ['C:\Program Files\apollo', 'D:\tools\Apollo'],
   ]
  ---------------------------------------
  
  • この後、DOS窓を開き、ソースを展開したd:\tool\apollo に移動し、config.bat を実行
  • Delphiを起動し、d:\tool\apollo\src\phi.dpr を開く
  • [プロジェクト/Phiを再構築]メニューを実行すると、d:\tool\apollo\bin にphi.so ができる
  • コンパイルしてできたphi.so を元のD:\Apollo\bin にコピーすればListView対策版を使える


戻る