Apolloでメモ帳を作成します。
Apolloチュートリアルを参考にしました。
メニューバーの表示にはPhi.new_menu
を、メニューの項目には、Phi.new_item
を使用すると、簡単に作成できます。
Phi.new_menu(form, :menu1, [ menu_file = Phi.new_item('ファイル(&F)', '', :mi_file).add( menu_new = Phi.new_item('新規(&N)', 'CTRL+N', :mi_new), menu_open = Phi.new_item('開く(&O)', 'CTRL+O', :mi_open), menu_save = Phi.new_item('保存(&S)', 'CTRL+S', :mi_save), menu_saveas = Phi.new_item('名前を付けて保存(&A)', '', :mi_save), Phi.new_line, menu_exit = Phi.new_item('終了(&X)', '', :mi_exit) ), menu_help = Phi.new_item('ヘルプ(&H)', '', :mi_help).add( menu_about = Phi.new_item('memoについて', '', :mi_about) ) ])
メニュー項目のクリックイベントに処理を割り当てます。
#メニュー[ファイル]-[閉じる] menu_exit.on_click = proc do form.close end #メニュー[ヘルプ]-[memoについて] require 'dialogs' menu_about.on_click = proc do Phi.message_dlg('簡単なテキストエディタ', Phi::MT_INFORMATION, [Phi::MB_OK], 0) end
#!ruby -Ks require 'phi' require 'dialogs' #Phi.message_dlg form = Phi::Form.new(:form1, 'memo') Phi.new_menu(form, :menu1, [ menu_file = Phi.new_item('ファイル(&F)', '', :mi_file).add( menu_new = Phi.new_item('新規(&N)', 'CTRL+N', :mi_new), menu_open = Phi.new_item('開く(&O)', 'CTRL+O', :mi_open), menu_save = Phi.new_item('保存(&S)', 'CTRL+S', :mi_save), menu_saveas = Phi.new_item('名前を付けて保存(&A)', '', :mi_save), Phi.new_line, menu_exit = Phi.new_item('終了(&X)', '', :mi_exit) ), menu_help = Phi.new_item('ヘルプ(&H)', '', :mi_help).add( menu_about = Phi.new_item('memoについて', '', :mi_about) ) ]) #メニュー[ファイル]-[閉じる] menu_exit.on_click = proc do form.close end #メニュー[ヘルプ]-[memoについて] menu_about.on_click = proc do Phi.message_dlg('簡単なテキストエディタ') end form.show Phi.mainloop
Phi::Form
を継承したMemoForm
を作成します。
#!ruby -Ks require 'phi' require 'dialogs' #Phi.message_dlg class MemoForm < Phi::Form def initialize(*arg) super #メニュー Phi.new_menu(self, :menu1, [ menu_file = Phi.new_item('ファイル(&F)', '', :mi_file).add( menu_new = Phi.new_item('新規(&N)', 'CTRL+N', :mi_new), menu_open = Phi.new_item('開く(&O)', 'CTRL+O', :mi_open), menu_save = Phi.new_item('保存(&S)', 'CTRL+S', :mi_save), menu_saveas = Phi.new_item('名前を付けて保存(&A)', '', :mi_save), Phi.new_line, menu_exit = Phi.new_item('終了(&X)', '', :mi_exit) ), menu_help = Phi.new_item('ヘルプ(&H)', '', :mi_help).add( menu_about = Phi.new_item('memoについて', '', :mi_about) ) ]) #メニュー[ファイル]-[閉じる] menu_exit.on_click = proc do self.close end #メニュー[ヘルプ]-[memoについて] menu_about.on_click = proc do Phi.message_dlg('簡単なテキストエディタ') end end end form = MemoForm.new(:form1, 'memo') form.show Phi.mainloop
更新履歴