$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は、マウスカーソルの位置にメニューが表示される。