dialog1.rb
001 require 'phi'
002 require 'dialogs'
003
004 def show_ok_msg(msg)
005 Phi::message_dlg(msg, Phi::MT_INFORMATION, [Phi::MB_OK], 0)
006 end
007
008 form = Phi::Form.new(:form1, 'フォームです')
009 button = Phi::Button.new(form, :button1, 'hoge')
010 button.align = Phi::AL_CLIENT
011
012 button.on_click = proc do
013 result = Phi::message_dlg( 'メッセージダイアログです。',
014 Phi::MT_CONFIRMATION, [Phi::MB_OK, Phi::MB_YES, Phi::MB_NO,
015 Phi::MB_CANCEL], 0)
016 case result
017 when Phi::MR_OK
018 Phi::message_dlg('OKのボタンが押されました。', Phi::MT_INFORMATION,
019 [Phi::MB_OK], 0)
020
021 when Phi::MR_YES
022 result2 = Phi::message_dlg('はいのボタンが押されました。',
023 Phi::MT_ERROR, [Phi::MB_ALL, Phi::MB_ABORT, Phi::MB_RETRY,
024 Phi::MB_IGNORE, Phi::MB_YES_TO_ALL, Phi::MB_NO_TO_ALL], 0)
025 case result2
026 when Phi::MR_ALL
027 show_ok_msg('すべてのボタンが押されました。')
028 when Phi::MR_ABORT
029 show_ok_msg('中止のボタンが押されました。')
030 when Phi::MR_RETRY
031 show_ok_msg('再試行のボタンが押されました。')
032 when Phi::MR_IGNORE
033 show_ok_msg('無視のボタンが押されました。')
034 when 9
035 #when Phi::MR_NO_TO_ALL
036 # Phi::MR_NO_TO_ALLはありません(result2には9が入ります)
037 show_ok_msg('すべていいえのボタンが押されました。')
038 when 10
039 #when Phi::MR_YES_TO_ALL
040 # Phi::MR_YES_TO_ALLはありません(result2には10が入ります)
041 show_ok_msg('すべてはいのボタンが押されました。')
042 end
043
044 when Phi::MR_NO
045 Phi::message_dlg('いいえのボタンが押されました。', Phi::MT_WARNING,
046 [Phi::MB_OK], 0)
047
048 when Phi::MR_CANCEL
049 Phi::message_dlg('キャンセルのボタンが押されました。',
050 Phi::MT_CUSTOM, [Phi::MB_OK], 0)
051 end
052 end
053
054 form.show
055 Phi.mainloop
このスクリプトを実行すると、このような ウィンドウがあらわれます。