「ポップアップメニューを手軽に扱う」の版間の差分

Meryのポップアップメニュのラッパー関数ShowPopupMenuの説明
 
264行目: 264行目:


といった再帰定義で無限ループになるのを防ぐためです。
といった再帰定義で無限ループになるのを防ぐためです。
== おまけ ==
サブメニューとかいいから簡単に使いたいという人向け。
<source lang="javascript">
function ShowMenuMini(list){
    var pos = 0;
    var ret = 0;
    var menu = CreatePopupMenu();
    for(i = 0;i < list.length;i++){
        //if(list[i].toString().indexOf("----") !== -1){menu.Add("hoge",999,meMenuSeparator);continue;}
        menu.Add(list[i].toString(),i + 1);
    }
    ret = menu.Track(pos);
    if(ret === 0){
        Quit(); //ESCキーを押した時の挙動
    }
    else{
        return ret - 1;
    }
}
</source>
<source lang="javascript">
function ShowMenuMini(
    list : Array
)
</source>
引数には配列を指定する。選択された要素のインデックスが返り値になる。
=== 使い方 ===
<source lang="javascript">
var menu = ["Morning","Afternoon","Evening"];
var value = ["あんぱん","ジャムパン","カレーパン"];
Document.Write(value[ShowMemuMini(menu) ] );
</source>
なお、セパレーターを挿入する機能はオフにしてあります。セパレータを使いたい場合は8行目のコメントアウトを外してください。その場合はメニュの表示と返り値がずれることに注意してください。
<source lang="javascript">
var menu = ["Morning","Afternoon","----","Evening"];
var value = ["あんぱん","ジャムパン","ここが選ばれることはない","カレーパン"];
Document.Write(value[ShowMemuMini(menu) ] );
</source>
スポンサーリンク