INF_Framework は ONnoji さん作成のフリーのライブラリです。
フォームに便利な機能を追加してくれます。

ここでは INF_Framework が適用されたフォームの便利機能を、
できるだけ簡単に利用できるように解説していきたいと思っています(?、頑張ります)。


メッセージボックス


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 手続き定義終了