title: Apollo チュートリアル
Author: NISHIO Mizuho
mailto: mzh@portnet.ne.jp

1. エディットコントロールとコンボボックスコントロール

  ユーザーが入力した文字を受け取るためによく使われるコントロールです。

1.1. その1(エディットコントロール)

  %href: ./rb/edit.rb edit.rb%

--ruby
001  require 'phi'
002  
003  form = Phi::Form.new(:form1, 'formです')
004  edit = Phi::Edit.new(form, :edit1)
005  button = Phi::Button.new(form, :button1, 'OK')
006  
007  form.width = 350
008  form.height = 50
009  edit.align = Phi::AL_CLIENT
010  edit.text = ''
011  button.align = Phi::AL_RIGHT
012  
013  button.on_click = proc do
014    print edit.text, "\r\n"
015  end
016  
017  form.show
018  Phi.mainloop
--

  このスクリプトを実行すると、%href: img/edit.png このような% ウィンドウがあらわれます。

1.1.1. 解説
  今回のサンプルではボタンが押されると、エディットに入力された文字が標準出力に表示されるようになっています。

  4行目でエディットを生成しています。 Phi::Edit.new は三つの引数を取ることができ、第1引数は親になるコントロール、第2引数はSymbolのオブジェクトや文字列( Phi::Label.new の時に説明した第2引数と同じです)、第3引数はコントロールに表示される文字列になります。この時、第2引数以降は省略することが可能です。

  Phiのモジュールで定義されているクラス( Phi::Label、Phi::Edit、Phi::Button 等)のコンストラクタ(new)はこれと同じ引数を取ることが多いです。

  9行目と11行目でエディットとボタンの配置と大きさを設定しています。Phi::AL_CLIENTとPhi::AL_RIGHTを使うことでコントロールの位置や大きさを数字で指定せずに設定することが可能です。10行目は起動時に表示されるエディットの文字を空にしています。Phi::Edit.new  でエディットの文字列を指定しない場合は、「edit1」のような文字がエディットに表示されるので、ここで空の文字をエディットに指定しています。

  13〜15行はボタンが押されたときの動作を設定しています。14行目のedit.text( Phi::Edit#text )は現在エディットに表示されている文字を表わしているので、ボタンが押されると、エディットの文字がコンソール(操作卓等に)に1行で表示されます。

1.1.1.1. クラスやメソッド
: Phi::Edit#
* Phi::Edit.new
* Phi::Edit#text

1.2. その2(コンボボックスコントロール)

  %href: ./rb/combobox.rb combobox.rb%

--ruby
001  require 'phi'
002  
003  form = Phi::Form.new(:form1, 'formです')
004  combobox = Phi::ComboBox.new(form, :combobox1)
005  button = Phi::Button.new(form, :button1, 'OK')
006  
007  form.width = 350
008  form.height = 50
009  combobox.align = Phi::AL_CLIENT
010  combobox.text = ''
011  button.align = Phi::AL_RIGHT
012  
013  combobox.items.add('ほげ')
014  combobox.items.add('ふが')
015  combobox.items.add('にゅう')
016  
017  button.on_click = proc do
018    print combobox.text, "\r\n"
019  end
020  
021  form.show
022  Phi.mainloop
--

  このスクリプトを実行すると、%href: img/combobox.png このような% ウィンドウがあらわれます。
1.2.1. 解説
  コンボボックスはブラウザーのURLを入力する部分に使われているコントロールです。プルダウンメニューから値を選択することができるところがエディットとは大きく違います。

  3〜5行はこのスクリプトで使用するコントロールを生成していて、4行目でコンボボックスを生成しています。 Phi::Combobox.new の使い方は今まで紹介してきたコントロールのコンストラクタと同じなので、分かると思います。

  7〜11行はコントロールの配置やサイズを設定しています。

  13〜15行目はコンボボックスのプルダウンメニューを設定しています。 combobox.items( Phi::ComboBox#items )はプルダウンメニューに表示される項目で、その実体は Phi::Strings のオブジェクトです。Phi::Strings は配列のように扱うことができ、combobox.items.add ( Phi::Strings#add )によって Phi::Strings のオブジェクトに項目を追加します。ここでは Phi::Strings#add はプルダウンメニューを追加する働きがありますが、 Phi::Strings は使用するオブジェクトによって機能が違うので、注意してください。

  17〜19行はOKボタンが押された時のイベントを設定しています。行っていることはエディットの時とほとんど同じです。

1.2.1.1. クラスやメソッド
: Phi::ComboBox#
* Phi::ComboBox.new
* Phi::ComboBox#items
* Phi::ComboBox#text

: Phi::Strings#
* Phi::Strings.new
* Phi::Strings#add
