トップページへ | [ 一覧 | 検索 | 最終更新 ] [ 差分 | 履歴 | 凍結 ] |
簡易配列からメニューを構築する†動的に要素数が変化する配列からメニューを構築し選択判定します。 1)初期化用の関数を用意します。 MyTestMenuItem { testmenuitem1 = "てすと1,てすと2,てすと3" testmenuitem2 = "テスト1,テスト2,テスト3,テスト4,テスト5" } 2)OnFirstBootおよびOnBootでMyTestMenuItemを呼びます。 3)既存の関数内に処理を埋め込みます。 OpenMenu { "\0\s[0]/ : : \q[メニュー1,TESTMENU1]\n/ \q[メニュー2,TESTMENU2]\n/ : : \e" } OnChoiceSelect { //---- メニューアイテムIDを抽出する _menuitemid = 0 // ずっと下でこの変数を参照できるように、定義だけ行っておく。 if STRSTR(reference0,"TESTMENUITEM1_",0) == 0 { _menuitemid = TOINT(ERASE(reference0,0,STRLEN("TESTMENUITEM1_"))) reference0 = "TESTMENUITEM1" } if STRSTR(reference0,"TESTMENUITEM2_",0) == 0 { _menuitemid = TOINT(ERASE(reference0,0,STRLEN("TESTMENUITEM2_"))) reference0 = "TESTMENUITEM2" } //---- メインメニュー case reference0 { : : when "TESTMENU1" { //---- メニュー1表示 _list = "" for _i = 0 ; testmenuitem1[_i] != "" ; _i++ { _list += "\q[%(testmenuitem1[_i]),TESTMENUITEM1_%(_i)]\n" } "\0\s[0]\b[2]%(_list)\e" } when "TESTMENU2" { //---- メニュー2表示 _list = "" for _i = 0 ; testmenuitem2[_i] != "" ; _i++ { _list += "\q[%(testmenuitem2[_i]),TESTMENUITEM2_%(_i)]\n" } "\0\s[0]\b[2]%(_list)\e" } when "TESTMENUITEM1" { //---- とりあえずはアイテム文字列を喋るだけ "\0\s[0]%(testmenuitem1[_menuitemid])が選択されました。\e" } when "TESTMENUITEM2" { //---- とりあえずはアイテム文字列を喋るだけ "\0\s[0]%(testmenuitem2[_menuitemid])が選択されました。\e" } : : } } |
最終更新日: 2006-12-09 (土) 14:41:57
|