INF_Framework は ONnoji さん作成のフリーのライブラリです。
フォームに便利な機能を追加してくれます。
ここでは INF_Framework が適用されたフォームの便利機能を、
できるだけ簡単に利用できるように解説していきたいと思っています(?、頑張ります)。
メッセージボックス
| 更新日:2025年4月27日 |
INF_Framework にはメッセージボックスを表示するためのプロシージャが準備されていて
次の3つを使って利用することができます。
| 1:INFprcMsgPause( &icon, &title, &msg ) | ポーズ:一時停止 |
| 2:INFprcMsgOKCancel( &icon, &title, &msg, &ans ) | OK/キャンセル:応答取得 |
| 3:INFprcMsgYesNo( &icon, &title, &msg, &ans ) | はい/いいえ:応答取得 |
すべてのINF_Framework 共通 (注)
(注)モダンINF_Framework、クラシックINF_Framework、NULL INF_Framework
桐のコマンド、メッセージボックスは次のようになっています。
| メッセージボックス <タイトル>,\ |
| <表示文字列>,\ |
| アイコン = i|?|!|E|,\ |
| ボタン指定 = 1|2|3|4|5|6,\ |
| 制御文字展開 = しない|する,\ |
| <整数型の変数名> |
ボタン指定 = 1|2|3|4|5|6
メッセージボックス上に配置する、ボタンの組み合わせを番号で指定します(計算式)。
このパラメータを省略すると、[OK]ボタンだけが配置されます。
| 指定値 | 配置するボタン | 肯定時の戻値 | 否定時の戻値 | [×] or [Esc] |
| 1 | [OK]のみ | 1 | ― | 1 |
| 2 | [OK]と[キャンセル] | 1 | 2 | 2 |
| 3 | [中止]、[再試行]、[無視] | ― | 3 , 4 , 5 | なし:使用不可 |
| 4 | [はい]、[いいえ]、[キャンセル] | 6 | 7 , 2 | 2 |
| 5 | [はい]、[いいえ] | 6 | 7 | 7 |
| 6 | [再試行]、[キャンセル] | ― | 4 , 2 | 2 |
たくさんの設定がありますが 実際の利用では
1,2,5 のボタン指定で ほとんど事足りるのではないかと思われます。
そしてメッセージボックスの ボタン指定、1,2,5 に対応する INF_Framework の手続き が以下の3つになります。
| 用意されている手続き | 配置するボタン | 肯定時の戻値 | 否定時の戻値 | [×] or [Esc] |
| INFprcMsgPause( &icon, &title, &msg ) | [OK]のみ | ― | ― | ― |
| INFprcMsgOKCancel( &icon, &title, &msg, &ans ) | [OK]と[キャンセル] | 1 | 0 | 0 |
| INFprcMsgYesNo( &icon, &title, &msg, &ans ) | [はい]、[いいえ] | 1 | 0 | 0 |
-----
それでは、メッセージボックス の ボタン指定、1,2,5 とそれに対応した INF_Framework での表示を確認してみましょう。
※ NULL INF_Frameworkで 次の様にコマンドボタンを配置して表示してみました。
○ ボタン指定1、INFprcMsgPause( &icon, &title, &msg ) --------------------------------------------------
ソースコード
<< メッセージボックス ボタン指定1 >>
※ここでは戻り値を表示させるために "&ans" や "確認"コマンドを設定しています([OK] だけなので通常は不要ですね)。
| 101 | 手続き定義開始 cmdボタン指定1Click( ) | |
| 102 | 変数宣言 自動,文字列{ &title, &msg } | |
| 103 | 変数宣言 自動,整数{ &ans } | |
| 104 | ||
| 105 | &title = "cmdボタン指定1Click( )" | |
| *メッセージボックスを表示させた 手続き名 を タイトル にしておくと後々便利です。 | ||
| 106 | &msg = "メッセージボックスはいろいろな場面で使われる" | |
| 107 | &msg = &msg + "\n便利なコマンドです。" | |
| 108 | &msg = &msg + "\n" | |
| 109 | &msg = &msg + "\nほとんどの場合では ボタン指定 1,2,5 で " | |
| 110 | &msg = &msg + "\n対応できるのではないかと思われます。" | |
| 111 | &msg = &msg + "\n" | |
| 112 | &msg = &msg + "\nただ標準化という視点で見るとメッセージボックスは" | |
| 113 | &msg = &msg + "\nボタン指定での戻り値がバラバラなのが気になります。" | |
| 114 | &msg = &msg + "\n" | |
| 115 | &msg = &msg + "\nそこで INF_Framework では戻り値を標準化した" | |
| 116 | &msg = &msg + "\nメッセージボックスを使うことができます。" | |
| 117 | &msg = &msg + "\n" | |
| 118 | &msg = &msg + "\nこのメッセージボックスは ボタン指定 = 1 です。" | |
| 119 | メッセージボックス &title, &msg,アイコン = i , ボタン指定 = 1 , 制御文字展開 = する , &ans | |
| 120 | ||
| 121 | 確認 "[OK]ボタンを押しました:戻り値は " + #str(&ans) + " です。" | |
| 122 | ||
| 123 | 手続き定義終了 |
<< INFprcMsgPause( &icon, &title, &msg ) >>
| 1101 | 手続き定義開始 cmdINFボタン指定1Click( ) | |
| 1102 | 変数宣言 自動,文字列{ &icon, &title, &msg } | |
| 1103 | ||
| 1104 | &title = "cmdINFボタン指定1Click( )" | |
| 1105 | &msg = "メッセージボックスはいろいろな場面で使われる" | |
| 1106 | &msg = &msg + "\n便利なコマンドです。" | |
| 1107 | &msg = &msg + "\n" | |
| 1108 | &msg = &msg + "\nほとんどの場合では ボタン指定 1,2,5 で " | |
| 1109 | &msg = &msg + "\n対応できるのではないかと思われます。" | |
| 1110 | &msg = &msg + "\n" | |
| 1111 | &msg = &msg + "\nただ標準化という視点で見ると" | |
| 1112 | &msg = &msg + "\nボタン指定での戻り値がバラバラなのが気になります。" | |
| 1113 | &msg = &msg + "\n" | |
| 1114 | &msg = &msg + "\nそこで INF_Framework では戻り値を標準化した" | |
| 1115 | &msg = &msg + "\nメッセージボックスを使うことができます。" | |
| 1116 | &msg = &msg + "\n" | |
| 1117 | &msg = &msg + "\nプロシージャ INFprcMsgPause を実行しました。" | |
| 1118 | &icon = "i" /* !:警告 , ?:問い合わせ , i:情報 , E:エラー */ | |
| 1119 | 手続き実行 INFprcMsgPause( &icon, &title, &msg ) | |
| 1120 | ||
| 1121 | 確認 "[OK]ボタンを押しました" | |
| 1122 | ||
| 1123 | 手続き定義終了 |
○ ボタン指定2、INFprcMsgOKCancel( &icon, &title, &msg, &ans ) --------------------------------------
ソースコード
<< メッセージボックス ボタン指定2 >>
| 201 | 手続き定義開始 cmdボタン指定2Click( ) | |
| 202 | 変数宣言 自動,文字列{ &title = "cmdボタン指定2Click( )", &msg } | |
| 203 | 変数宣言 自動,整数{ &ans } | |
| 204 | ||
| 205 | &msg = "メッセージボックスはいろいろな場面で使われる" | |
| 206 | &msg = &msg + "\n便利なコマンドです。" | |
| 207 | &msg = &msg + "\n" | |
| 208 | &msg = &msg + "\nほとんどの場合では ボタン指定 1,2,5 で " | |
| 209 | &msg = &msg + "\n対応できるのではないかと思われます。" | |
| 210 | &msg = &msg + "\n" | |
| 211 | &msg = &msg + "\nただ標準化という視点で見るとメッセージボックスは" | |
| 212 | &msg = &msg + "\nボタン指定での戻り値がバラバラなのが気になります。" | |
| 213 | &msg = &msg + "\n" | |
| 214 | &msg = &msg + "\nそこで INF_Framework では戻り値を標準化した" | |
| 215 | &msg = &msg + "\nメッセージボックスを使うことができます。" | |
| 216 | &msg = &msg + "\n" | |
| 217 | &msg = &msg + "\nこのメッセージボックスは ボタン指定 = 2 です。" | |
| 218 | メッセージボックス &title, &msg,アイコン = i , ボタン指定 = 2 , 制御文字展開 = する , &ans | |
| 219 | ||
| 220 | if ( &ans = 1 ) | |
| 221 | 確認 "[OK]ボタンを押しました:戻り値は " + #str(&ans) + " です。" | |
| 222 | else | |
| 223 | 確認 "[キャンセル]ボタンを押しました:戻り値は " + #str(&ans) + " です。" | |
| 224 | end | |
| 225 | ||
| 226 | 手続き定義終了 |
<< INFprcMsgOKCancel( &icon, &title, &msg, &ans ) >>
| 2201 | 手続き定義開始 cmdINFボタン指定2Click( ) | |
| 2202 | 変数宣言 自動,文字列{ &icon, &title = "cmdINFボタン指定2Click( )", &msg } | |
| 2203 | 変数宣言 自動,整数{ &ans } | |
| 2204 | ||
| 2205 | &msg = "メッセージボックスはいろいろな場面で使われる" | |
| 2206 | &msg = &msg + "\n便利なコマンドです。" | |
| 2207 | &msg = &msg + "\n" | |
| 2208 | &msg = &msg + "\nほとんどの場合では ボタン指定 1,2,5 で " | |
| 2209 | &msg = &msg + "\n対応できるのではないかと思われます。" | |
| 2210 | &msg = &msg + "\n" | |
| 2211 | &msg = &msg + "\nただ標準化という視点で見ると" | |
| 2212 | &msg = &msg + "\nボタン指定での戻り値がバラバラなのが気になります。" | |
| 2213 | &msg = &msg + "\n" | |
| 2214 | &msg = &msg + "\nそこで INF_Framework では戻り値を標準化した" | |
| 2215 | &msg = &msg + "\nメッセージボックスを使うことができます。" | |
| 2216 | &msg = &msg + "\n" | |
| 2217 | &msg = &msg + "\nプロシージャ INFprcMsgOKCancel を実行しました。" | |
| 2218 | &icon = "i" /* !:警告 , ?:問い合わせ , i:情報 , E:エラー */ | |
| 2219 | 手続き実行 INFprcMsgOKCancel( &icon, &title, &msg, &ans ) | |
| 2220 | ||
| 2221 | if ( &ans = 1 ) | |
| 2222 | 確認 "[OK]ボタンを押しました:戻り値は " + #str(&ans) + " です。" | |
| 2223 | else | |
| 2224 | 確認 "[キャンセル]ボタンを押しました:戻り値は " + #str(&ans) + " です。" | |
| 2225 | end | |
| 2226 | ||
| 2227 | 手続き定義終了 |
○ ボタン指定5、INFprcMsgYesNo( &icon, &title, &msg, &ans ) -----------------------------------------
ソースコード
<< メッセージボックス ボタン指定5 >>
| 501 | 手続き定義開始 cmdボタン指定5Click( ) | |
| 502 | 変数宣言 自動,文字列{ &title = "cmdボタン指定5Click( )", &msg } | |
| 503 | 変数宣言 自動,整数{ &ans } | |
| 504 | ||
| 505 | &msg = "メッセージボックスはいろいろな場面で使われる" | |
| 506 | &msg = &msg + "\n便利なコマンドです。" | |
| 507 | &msg = &msg + "\n\nほとんどの場合では ボタン指定 1,2,5 で " | |
| 508 | &msg = &msg + "\n対応できるのではないかと思われます。" | |
| 509 | &msg = &msg + "\n\nただ標準化という視点で見るとメッセージボックスは" | |
| 510 | &msg = &msg + "\nボタン指定での戻り値がバラバラなのが気になります。" | |
| 511 | &msg = &msg + "\n\nそこで INF_Framework では戻り値を標準化した" | |
| 512 | &msg = &msg + "\nメッセージボックスを使うことができます。" | |
| 513 | &msg = &msg + "\n\nこのメッセージボックスは ボタン指定 = 5 です。" | |
| 514 | メッセージボックス &title, &msg,アイコン = i , ボタン指定 = 5 , 制御文字展開 = する , &ans | |
| 515 | ||
| 516 | if ( &ans = 6 ) | |
| 517 | 確認 "[はい]ボタンを押しました:戻り値は " + #str(&ans) + " です。" | |
| 518 | else | |
| 519 | 確認 "[いいえ]ボタンを押しました:戻り値は " + #str(&ans) + " です。" | |
| 520 | end | |
| 521 | ||
| 522 | 手続き定義終了 |
<< INFprcMsgYesNo( &icon, &title, &msg, &ans ) >>
| 5501 | 手続き定義開始 cmdINFボタン指定5Click( ) | |
| 5502 | 変数宣言 自動,文字列{ &icon, &title = "cmdINFボタン指定5Click( )", &msg } | |
| 5503 | 変数宣言 自動,整数{ &ans } | |
| 5504 | ||
| 5505 | &msg = "メッセージボックスはいろいろな場面で使われる" | |
| 5506 | &msg = &msg + "\n便利なコマンドです。" | |
| 5507 | &msg = &msg + "\n\nほとんどの場合では ボタン指定 1,2,5 で " | |
| 5508 | &msg = &msg + "\n対応できるのではないかと思われます。" | |
| 5509 | &msg = &msg + "\n\nただ標準化という視点で見ると" | |
| 5510 | &msg = &msg + "\nボタン指定での戻り値がバラバラなのが気になります。" | |
| 5511 | &msg = &msg + "\n\nそこで INF_Framework では戻り値を標準化した" | |
| 5512 | &msg = &msg + "\nメッセージボックスを使うことができます。" | |
| 5513 | &msg = &msg + "\n\nプロシージャ INFprcMsgYesNo を実行しました。" | |
| 5514 | &icon = "i" /* !:警告 , ?:問い合わせ , i:情報 , E:エラー */ | |
| 5515 | 手続き実行 INFprcMsgYesNo( &icon, &title, &msg, &ans ) | |
| 5516 | ||
| 5517 | if ( &ans = 1 ) | |
| 5518 | 確認 "[はい]ボタンを押しました:戻り値は " + #str(&ans) + " です。" | |
| 5519 | else | |
| 5520 | 確認 "[いいえ]ボタンを押しました:戻り値は " + #str(&ans) + " です。" | |
| 5521 | end | |
| 5522 | ||
| 5523 | 手続き定義終了 |
<桐の論理値>
※ 論理値の詳細な解説は ONnoji さんの WEBサイト 桐の釣魚大全をご覧になってください (リンクページからジャンプできます) |
|||||||||||
|
以上のことから if ( &ans = 1 ) は if ( &ans ) と書けるのですが(ある意味、基本的なルール) メッセージボックスのように、戻り値が 1~7まであるとそうはいかなくなります。 INFprcMsgPause、INFprcMsgOKCancel、IINFprcMsgYesNo を利用してルールに順守することができます。 |