require 'phi' require 'dialogs' def show_ok_msg(msg) Phi::message_dlg(msg, Phi::MT_INFORMATION, [Phi::MB_OK], 0) end form = Phi::Form.new(:form1, 'フォームです') button = Phi::Button.new(form, :button1, 'hoge') button.align = Phi::AL_CLIENT button.on_click = proc do result = Phi::message_dlg( 'メッセージダイアログです。', Phi::MT_CONFIRMATION, [Phi::MB_OK, Phi::MB_YES, Phi::MB_NO, Phi::MB_CANCEL], 0) case result when Phi::MR_OK Phi::message_dlg('OKのボタンが押されました。', Phi::MT_INFORMATION, [Phi::MB_OK], 0) when Phi::MR_YES result2 = Phi::message_dlg('はいのボタンが押されました。', Phi::MT_ERROR, [Phi::MB_ALL, Phi::MB_ABORT, Phi::MB_RETRY, Phi::MB_IGNORE, Phi::MB_YES_TO_ALL, Phi::MB_NO_TO_ALL], 0) case result2 when Phi::MR_ALL show_ok_msg('すべてのボタンが押されました。') when Phi::MR_ABORT show_ok_msg('中止のボタンが押されました。') when Phi::MR_RETRY show_ok_msg('再試行のボタンが押されました。') when Phi::MR_IGNORE show_ok_msg('無視のボタンが押されました。') when 9 #when Phi::MR_NO_TO_ALL # Phi::MR_NO_TO_ALLはありません(result2には9が入ります) show_ok_msg('すべていいえのボタンが押されました。') when 10 #when Phi::MR_YES_TO_ALL # Phi::MR_YES_TO_ALLはありません(result2には10が入ります) show_ok_msg('すべてはいのボタンが押されました。') end when Phi::MR_NO Phi::message_dlg('いいえのボタンが押されました。', Phi::MT_WARNING, [Phi::MB_OK], 0) when Phi::MR_CANCEL Phi::message_dlg('キャンセルのボタンが押されました。', Phi::MT_CUSTOM, [Phi::MB_OK], 0) end end form.show Phi.mainloop