# モーダルダイアログ

## ダイアログ

> モーダルダイアログというのは、

> 「マントヒヒ」と、言う。

> のように、「マントヒヒ」と表示されたダイアログを出してから、[OK]ボタンが押されるまで、実行を停止して待ちつづける、というようなものです。

> ひまわりには、ユーザーからの入力を受け付けるダイアログが、数種類用意されています。

## 命令一覧

> 選択ダイアログ
> ダイアログ
> 言う | ?と | メッセージボックスに、文字を表示する | 12
> 尋ねる | ?と | 入力ダイアログを表示して、文字列を入力してもらい、答えをそれに得る | 10
> 二択 | ?と | はい、いいえで、質問し、「それ」に、答えを返す | 40
> 三択 | ?と | はい、いいえ、キャンセルで、質問し、「それ」に、答えを返す | 160
> どれか尋ねる | ?が,?の | ?(表示メッセージ)が,選択肢?(選択肢は|で区切る)のどれか尋ねる選択ダイアログを出し、それに答えを返す。 | 264
> リストから選択 | ?を,?の | ?(表示メッセージ)を,選択肢?(選択肢は|で区切る)のどれかリストから尋ねる選択ダイアログを出し、それに答えを返す | 301
> ボタンで選択 | ?を,?の | ?(表示メッセージ)を,選択肢?(選択肢は\nで区切るか配列変数)のどれか尋ねる選択ダイアログを出し、それに答えを返す | 309
> メモ記入 | ?の | メモ帳を表示して、文章を入力してもらい、答えを、それに得る。 | 265
> 色選択 |  | 色を選択するダイアログをだし、「それ」に、色番号を返す | 103
> フォント選択 |  | フォントを選択するダイアログをだし、「それ」に、フォント名を返す | 312
> ファイルフォルダ
> 読込ファイル選択 | ?の | ?形式のファイルを、選択するダイアログをだし、「それ」に、ファイル名を返す | 41
> 書込ファイル選択 | ?の | ?形式のファイルを、選択するダイアログをだし、「それ」に、ファイル名を返す | 42
> フォルダ選択 |  | フォルダを選択するダイアログを出し、「それ」に返す | 169

## キャンセルボタンを押した時の返却値

> ver.1.24以前のバージョンでは、キャンセルをボタンを押すと、「」(文字なし)が返されていましたが、それでは不便な局面もありますので、『ダイアログキャンセルの値＝（適当な文字）』と、設定しておくことで、キャンセルボタンを押した時の動作をチェックできるようにしました。

> ダイアログキャンセルの値 = 「キャンセルだよ〜」 「大漁ですか？」と、尋ねる。 それを、表示。

## IMEの状態を制御

> ver.1.30以降のバージョンでは、ダイアログの入力エディタの、IME状態を設定できるようになりました。『ダイアログIMEの状態＝（IME状態）』と、設定します。
> 設定できるIMEの状態は、

> IMEオフ／IMEオン／IMEひらがな／IMEカタカナ／IME半角カタカナ

> の、５種類です。

> ダイアログIMEの状態 = IMEカタカナ’IMEをカタカナに設定 「カタカナで入力」と、尋ねる。 表示。

## ダイアログの初期値の設定

> 『尋ねる』『どれか尋ねる』『リストで選択』のダイアログでは、ダイアログの値の初期値を、設定しておくことが出来ます。これは、『ダイアログ初期値＝初期値』のように設定します。

> ダイアログ初期値＝「リンゴ」 「好きな食べ物は？」と、尋ねる。 表示。

## 詳しい解説

> ここでは、細かい設定が出来る命令だけ説明します。

### 読込ファイル選択／書込ファイル選択

> この２つの命令は、ファイルの選択ダイアログを表示します。
> 引数には、「txt」や「mid」などの、拡張子を指定します。

> `「txt」の、読込ファイル選択。 それを、表示。`

> ひまわりの慣例通り、命令の結果は、「それ」に返されます。

> それでは、「htm」と「html」の、両方の拡張子のファイルを選択したい場合は、どうしたら良いでしょうか。
> これは、「拡張子の説明|拡張子のフィルタ|拡張子の説明|拡張子のフィルタ|・・・」のように、半角の｜で、説明と、フィルタを区切って記述して行きます。
> この、拡張子のフィルタのところへ、必要なだけ、フィルタ；フィルタ；...と、書いていけばよいのです。
> 以下は、ＨＴＭＬファイルと、ＰＮＧファイルを切り替えるファイル選択ダイアログを表示します。

> `「HTMLファイル|*.htm;*.html|PNGファイル|*.png」の、読込ファイル選択。 それを、表示。`

> また、この命令は、作業フォルダを、選択初期ディレクトリとして、開きますので、マイドキュメントを、初期ディレクトリとして開きたい場合は、

> `マイドキュメントのパスへ、作業フォルダ変更。 『txt』の,読込ファイル選択。 それを、表示。`

> と、書きます。

## どれか尋ねる

> それから、案外重宝しそうなのが、「どれか尋ねる」命令です。
> これは、複数の選択肢を指定して呼び出すことで、リストボックス付きのダイアログを表示します。
> 以下の例は、りんごと、ばななと、いちごの、どれかを、選択するようなダイアログを表示します。

> `「好きな食べ物は？」が、「りんご｜ばなな｜いちご」の、どれか尋ねる。 それを、表示。`

> さて、以下の例は、ちょっと面白い使い方です。

> １： ２： ３： ４： | `ウインドウ列挙。 「\n」を、「|」に、置換。 「キャプチャーするのはどれ？」が,それの, どれか尋ねる。 それを、窓キャプチャー。`

> まず、１行目で現在Windowsで使われている、ウインドウのタイトルを列挙します。
> 次に、２行目で、改行記号を、｜に置換しています。これで、３行目の、「どれか尋ねる」の、選択肢を作ったわけです。
> そして、３行目で尋ね、４行目で、そのウインドウをキャプチャーして、母艦に描画するというものです。

> ※基本的に、「どれか尋ねる」と、「リストから選択」は、同じですが、どれか尋ねるは、選択のとき、ユーザーが選択肢以外のものを入力することが出来るという違いがあります。

戻る