English help on website



menu文(Ver9.41対応版)
目次− menu文
menu文はポップアップメニューを表示します。
menu "項目A","項目B","項目C";
パラメータ1〜(文字列型)
メニュー項目に表示される文字列を指定します。
項目の数だけ複数指定できます。

結果コード
メニューを選択した場合、resultは1から数えた項目の値になります。
選択しなかった場合、resultは0になります。

JavaScript
JavaScriptでは返り値として結果を取得可能です。


文字カーソルの近くにメニューを表示します。
menu "項目A", "項目B", "項目C";
if( result == 0 ) {
   endmacro;
} else if( result == 1 ) {
    message "Aが選ばれました。";
} else if( result == 2 ) {
    message "Bが選ばれました。";
} else if( result == 3 ) {
    message "Cが選ばれました。";
}
マウスカーソルの近くにメニューを表示するにはmousemenu文を使います。
iskeydownで、例えばCtrl+何かのキーに割り当てられた実行かどうかで処理を分ける方法があります。
if(iskeydown(0x11)){ //Ctrlが押されている
  menu "項目A", "項目B", "項目C";
} else {
  mousemenu "項目A", "項目B", "項目C";
}

配列で指定する方式のmenuarray文もあります。

セパレータ(区切り線)にする場合は、"\x01"という文字列を指定します。(V8.00以降)
menu
  "項目1",
  "\x01",
  "項目2";
サブメニューにする場合は、"\x01"に続いてサブメニューのメニュー名を記述します。(V8.85以降)
その後の項目はサブメニュー内の項目として解釈されます。""を指定すると、サブメニューの終了を意味します。
menu
  "\x01サブメニューA",
  "項目A-1",
  "項目A-2",
  "",
  "\x01サブメニューB",
  "項目B-1",
  "項目B-2",
  "",
  "項目C";
message str(result);
JavaScriptの例。
js{
  nRet = menu(
    "\x01サブメニューA",
      "項目A-1",
      "項目A-2",
      "",
    "\x01サブメニューB",
      "項目B-1",
      "項目B-2",
      "",
    "項目C"
    );
  message( nRet );
}
参考:
setmenudelay