English help on website



menuarray文(Ver9.34対応版)
目次− menuarray文
menuarray文は、ポップアップメニューを表示します。
menuarray $a, 3;
パラメータ1(文字列型の配列の変数名)
配列の変数名を指定します。
$a[0] $a[1] ... という配列の場合、角括弧を除いて、$aと記述します。
$a+$bといったような式を指定することはできません。

パラメータ2(数値型)
配列の要素数を指定します。

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


機能はmenu文と同じで、パラメータを配列で指定する方式の文です。
文字カーソルの近くにメニューを表示します。
$a[0] = "項目A";
$a[1] = "項目B";
$a[2] = "項目C";
menuarray $a, 3;
if( result == 0 ) {
   endmacro;
} else if( result == 1 ) {
    message "Aが選ばれました。";
} else if( result == 2 ) {
    message "Bが選ばれました。";
} else if( result == 3 ) {
    message "Cが選ばれました。";
}
この例の場合だと、$a[0]から$a[2]の3個の項目がメニューになって表示されます。

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

セパレータにする場合は、"\x01"という文字列を指定します。(V8.00以降)

サブメニューにする場合は、"\x01"に続いてサブメニューのメニュー名を記述します。(V8.85以降)
その後の項目はサブメニュー内の項目として解釈されます。""を指定すると、サブメニューの終了を意味します。
$a[0]="\x01サブメニューA";
$a[1]="項目A-1";
$a[2]="項目A-2";
$a[3]="";
$a[4]="\x01サブメニューB";
$a[5]="項目B-1";
$a[6]="項目B-2";
$a[7]="";
$a[8]="項目C";
menuarray $a,9;
message str(result);
参考:
setmenudelay