メニューを表示する(1)


$menu[0] = "バナナ";
$menu[1] = "マンゴー";
$menu[2] = "\x01";
$menu[3] = "ハイスクール";

menuarray $menu,4;

if( result == 0 ) {
    endmacro;
}else if ( result == 1 ) {
   message "バナナ";
}else if ( result == 2 ) {
    message "マンゴー";
}else if ( result == 4 ) {
    message "ハイスクール";
}

menuarrayは、メニューに表示する項目を配列で登録する。配列だから、先頭の添え字は0。しかし、何を選択したかのresultは、キャンセルされたときに0。項目が選択されたときは、先頭の項目が1になる。つまり、判定では1つズレる。これが面倒くさい。つーか、間違えやすい。また、resultの判定では、上記のようにifをネストする。switchやSelect Caseなどのステートメントはない。これがまた、面倒くさい。つーか間違えやすい。表示文字列に「\x01」を指定すると、セパレータになる。

このmenuarrayと次項で解説しているmenuは、カーソルの位置にメニューが表示される。対して、mousemenuarrayとmousemenuは、マウスカーソルの位置にメニューが表示される。