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

更新履歴