FrontPage  Index  Search  Changes  RSS  wikifarm  Login

tkUtils - MessageBox.rb Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

!!概要

windows専用ですが、Apolloには依存しない、メッセージボックスです。

----

!!実行見本:

require "Win32API/MessageBox"
ret = Win32API::MessageBox.ask("セーブしますか?","保存確認")
p ret #=> :yes, :no

で下のメッセージがでます。

戻り値は押したボタンに対応するシンボルが返ります。

{{attach_view('1.jpg')}}

----

!!コメントがありましたらどうぞ

*2009-05-02 (Sat) 21:56:14 jmedotwr : oiUvDYYBX
{{comment}}

----

!!説明・使い方

3番目の引数にシンボルの配列を入れると、様々なタイプのメッセージボックスを出すことができます。

----
require "Win32API/MessageBox"

msg = <<MMMM
コンピュータのハードディスクを初期化します。
初期化するとすべてのデータが失われます。

本当に良いんですか?

尚、キャンセルはできません。
MMMM

ret = Win32API::MessageBox.ask(msg,"初期化確認",[:ok, :icon_warning])
p ret #=> :ok
----

{{attach_view('2.jpg')}}

----

第三引数に利用可能なシンボルは、デタラメなシンボルを入れて実行すると、次のようなエラーメッセージで、利用可能なシンボルの一覧を返しますので、参考にしてください。

undefined symbol ':xx' in [:abort_retry_ignore,
   :cancel_try_continue, :default_button_2,
   :default_button_3, :default_button_4, :help,
   :icon_information, :icon_question, :icon_stop,
   :icon_warning, :ok, :ok_cancel, :retry_cancel,
   :set_foreground, :set_topmost, :yes_no,
   :yes_no_cancel] (RuntimeError)

これらのうち、

#次のものは、表示するボタンを指定します。
##:abort_retry_ignore,
##:cancel_try_continue,
##:ok,
##:ok_cancel,
##:retry_cancel,
##:yes_no,
##:yes_no_cancel
#次のものは、どのボタンをデフォルトにするかを指定します。
##:default_button_2,
##:default_button_3,
##:default_button_4,
#ヘルプは使えないでしょう・・
##:help,
#次のものはアイコンを指定します。
##:icon_information,
##:icon_question,
##:icon_stop,
##:icon_warning,
#次のものは、他の窓に隠されないようにします。
##:set_foreground,
##:set_topmost,

内容については、WindowsのAPIの説明をご覧ください。( http://yokohama.cool.ne.jp/chokuto/urawaza/api/MessageBox.html の説明などはいかがか?)

----

つぎのようなメソッドが用意されていますが、デフォルトが異なるだけです。
#Win32API::MessageBox.say ・・ 「ok」ボタンのみ
#Win32API::MessageBox.ask ・・ 「はい」と「いいえ」
#Win32API::MessageBox.ask3 ・・ 「はい」「いいえ」「キャンセル」

Win32API::MessageBox.call も使えますが・・

----

!!ソース:
{{attach_anchor('MessageBox.rb')}}
{{attach_src('MessageBox.rb')}}