Last Update : 2008/05/xx
各種ダイアログボックスを表示する命令です。命令名の由来は、「dialog box」から。ボックスを表示している時は、プログラムの動作が一時的に停止した状態となります。
dialog "message", ボックスの種類, "option"
第1パラメータは表示できるボックスの種類で、大きく分けて3つの系統があります。その系統ごとに、dialog命令の「"message"」パラメータと「"option"」パラメータの反映内容が異なります。システム変数statやrefstrには、それぞれのダイアログボックスの結果が返ります。
タイプ | 説明 | "message" | "option" | 返り値 |
0 | 「 i 」アイコンのメッセージボックス ボタンの種類:「OK」 |
表示文字列 | タイトル名 | システム変数 stat 押したボタン 1=「OK」 |
1 | 「 ! 」アイコンのメッセージボックス ボタンの種類:「OK」 |
|||
2 | 「 i 」アイコンのメッセージボックス ボタンの種類:「はい」・「いいえ」 |
システム変数 stat 押したボタン 6=「はい」 7=「いいえ」 |
||
3 | 「 ! 」アイコンのメッセージボックス ボタンの種類:「はい」・「いいえ」 |
|||
16 | ファイルを「開く」ダイアログ | 拡張子 | ファイルの 種類 |
システム変数 stat 0=「キャンセル」 0=ダイアログの×ボタン 1=正常選択 システム変数 refstr ファイルパス文字列 |
17 | ファイルを「名前を付けて保存」 ダイアログ |
|||
32 | 「色の選択」ダイアログ (カラーマトリックスは非表示状態) |
- | - | システム変数 stat 0=「キャンセル」 1=正常選択 ginfo関数 モード16-18 ginfo_r、ginfo_g、ginfo_b RGBカラー値 |
33 | 「色の選択」ダイアログ (カラーマトリックスを表示状態) |
HSP3ではタイプ64〜の「拡張ダイアログ」というのが存在しますが、HSP拡張ランタイムで利用できるものとのことで通常は利用しません。
普通のメッセージボックスを表示します。
それぞれのタイプの違いは、表示されるアイコン画像とボタン形式です。
このボタン上に表示される文字を任意のものに変更することはできません。メッセージボックス上の文字の表示色やフォントもシステム依存なのでいっさい指定できません。ダイアログの表示位置は必ず画面の中央です。(もしそのようなボックスを表示したい場合は、screen命令でボックスを再現するしかない)
dialog "情報だよーん\n「\\n」で改行\ncolor命令やfont命令は×", 0, "なし" dialog "危な〜い!", 1, "けいこーくっ"
ボックス内に表示する文字(dialog命令の「"message"」パラメータ)、ボックスのタイトル(dialog命令の「"option"」パラメータ)には、変数や関数を指定できます。dialog命令を呼び出した直後のシステム変数statをチェックすれば、「はい」・「いいえ」ボタンのどちら押したかが分かります。
data = "クエスチョン!" dialog "今は "+gettime(1)+" 月だよね?", 3, data ; システム変数statに、ユーザーがどちらのボタンを押したかが返る mes "stat値: "+stat ; 「はい」ボタンを押した場合・・・ if stat = 6 { mes " うんうん。" } ; 「いいえ」ボタンを押した場合・・・ if stat = 7 { mes " うそーん。" }
ファイルの「開く」ダイアログ、ファイルの「名前を付けて保存」ダイアログを表示します。
dialog命令は、実際にハードディスク上にファイルを保存したり、読み込んだりしてくれるわけではないので注意。あくまで、ファイルの選択ダイアログを表示するだけです。ユーザーが選択or指定したファイルパス文字列は、システム変数refstrに返ってきます。
; ファイルの読み込みダイアログ サンプルスクリプト1 button "開く...", *open stop *open ; テキストファイル dialog "txt", 16, "テキスト" ; システム変数 stat には、正常に選択したかキャンセルしたか if stat = 0 { mes "キャンセルされました" stop } ; システム変数 refstr には、ファイルパス文字列 mes "選択したパス: "+refstr
複数のファイル(拡張子)をファイル一覧リストに表示させたい場合は、2つ目以降に『「;」(セミコロン)+「*」(アスタリスク)+「.」(ドット)+拡張子』を後ろに付け足していきます。
; ファイルの読み込みダイアログ サンプルスクリプト2 button "開く...", *open stop *open ; テキストファイル、実行ファイル、DLLファイル dialog "txt;*.exe;*.dll", 16, "色々なファイル" if stat = 0 { mes "キャンセル" stop } mes "選択したパス: "+refstr
名前を付けて保存。保存するファイル名をあらかじめ指定しておくことはできません。すでに存在するファイルを指定した場合は、上書き保存するかどうかの確認ダイアログも表示されます。
; ファイルの保存ダイアログ サンプルスクリプト button "保存...", *save stop *save dialog "txt", 17, "保存する名前" if stat = 0 { mes "キャンセル" stop } mes "指定したパス: "+refstr
ちなみに、フォルダの選択ダイアログを表示したい場合は、HSP拡張プラグインhspext.dllに「selfolder命令」が用意されてます。DLLファイルを利用したくないならば、Win32 API関数を呼ぶ必要があります。(「HSP フォルダ選択」で検索!)
下のような色選択ダイアログを表示します。別名、カラーピッカー。ダイアログを表示した時点では、灰色(カラー値: 128, 128, 128)が常に選択されてます。
タイプの違いは、右側の「カラーマトリックス」を表示した状態でダイアログを開くか、非表示の状態で開くか、です。カラーマトリックスは独自の色を視覚的に定義することができる機能です。
選択した色のRGBカラー値が、ginfo関数のタイプ16〜18、またはマクロ定義のシステム変数「ginfo_r」、「ginfo_g」、「ginfo_b」に返ってきます。RGBカラーはHSPのcolor命令の色コード(0〜255)です。(HSP2の場合は、システム変数「rval」、「gval」、「bval」に返る)
; 色選択ダイアログ サンプルスクリプト [HSP3] ; ※エディタの[HSP]→[HSP拡張マクロを使用する]を要有効! button "カラー", *select stop *select dialog , 33 if stat = 0 { title "キャンセル" stop } title "R:"+ginfo (16)+" | G:"+ginfo (17)+" | B:"+ginfo (18)+" color ginfo (16), ginfo (17), ginfo (18) boxf 100, 100, 200, 200
※ RGBコード : R = Red (赤)、G = Green(緑)、B = Blue (青)
|
|