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

MSY-07 (トーク | 投稿記録)
<source>タグを<syntaxhighlight>タグに置き換える
MSY-07 (トーク | 投稿記録)
変数にvarの宣言を追加
 
(同じ利用者による、間の3版が非表示)
1行目: 1行目:
マクロではないのですが、Meryのポップアップメニューを手軽に扱える関数を書いてみました。
マクロではないのですが、Meryのポップアップメニューを手軽に扱える関数を書いてみました。


<syntaxhighlight lang="javascript">
== ソースコード ==
<syntaxhighlight lang="javascript" copy>
function ShowPopupMenu(menu_obj, position, separator, esc){
function ShowPopupMenu(menu_obj, position, separator, esc){
     var MAX_NEST = 5;//ネストの最大深度
     var MAX_NEST = 5;//ネストの最大深度
116行目: 117行目:
}
}
</syntaxhighlight>
</syntaxhighlight>
== 簡単な使い方 ==
== 簡単な使い方 ==
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
143行目: 145行目:


== 使い方 ==
== 使い方 ==
=== 配列を指定する場合 ===
=== 配列を指定する場合 ===
第1引数に配列を指定するとその配列内の要素をメニューに表示します。
第1引数に配列を指定するとその配列内の要素をメニューに表示します。
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
153行目: 153行目:


=== オブジェクトを指定する場合 ===
=== オブジェクトを指定する場合 ===
オブジェクトのキーがメニューに表示ます。キーに対応する値が返り値になります。(値が関数オブジェクトの時は後述。)
オブジェクトのキーがメニューに表示ます。キーに対応する値が返り値になります。(値が関数オブジェクトの時は後述。)


178行目: 177行目:


=== 使用例 ===
=== 使用例 ===
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
var menu = {};
var menu = {};
205行目: 203行目:


=== 返り値 ===
=== 返り値 ===
オブジェクトでメニューを定義するする場合、値が関数オブジェクトかそれ以外かで返り値が変わります。
オブジェクトでメニューを定義するする場合、値が関数オブジェクトかそれ以外かで返り値が変わります。
関数オブジェクトを指定するとその関数を実行して、その関数の返り値がShowPopupMenu関数の返り値になります。
関数オブジェクトを指定するとその関数を実行して、その関数の返り値がShowPopupMenu関数の返り値になります。
229行目: 226行目:


=== その他の引数の説明 ===
=== その他の引数の説明 ===
第2引数にmePosMouseを指定するとマウスカーソルの位置にメニューが表示されます。
第2引数にmePosMouseを指定するとマウスカーソルの位置にメニューが表示されます。


255行目: 251行目:


=== その他 ===
=== その他 ===
デフォルトではメニューの最大階層は5(2行目のMAX_NESTの値を書き換えることで変更可能)になっています。これは
デフォルトではメニューの最大階層は5(2行目のMAX_NESTの値を書き換えることで変更可能)になっています。これは
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
266行目: 261行目:


=== Tips ===
=== Tips ===
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
menu["Now?"] = new Date();
menu["Now?"] = new Date();
279行目: 273行目:
== おまけ ==
== おまけ ==
サブメニューとかいいから簡単に使いたいという人向け。
サブメニューとかいいから簡単に使いたいという人向け。
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript" copy>
function ShowMenuMini(list){
function ShowMenuMini(list){
     var pos = 0;
     var pos = 0;
286行目: 280行目:
     var menu = CreatePopupMenu();
     var menu = CreatePopupMenu();


     for(i = 0;i < list.length;i++){
     for(var i = 0;i < list.length;i++){
         //if(list[i].toString().indexOf("----") !== -1){menu.Add("hoge",999,meMenuSeparator);continue;}
         //if(list[i].toString().indexOf("----") !== -1){menu.Add("hoge",999,meMenuSeparator);continue;}
         menu.Add(list[i].toString(),i + 1);
         menu.Add(list[i].toString(),i + 1);
303行目: 297行目:


=== リファレンス ===
=== リファレンス ===
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
function ShowMenuMini(
function ShowMenuMini(
312行目: 305行目:


=== 使い方 ===
=== 使い方 ===
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
var menu = ["Morning","Afternoon","Evening"];
var menu = ["Morning","Afternoon","Evening"];
スポンサーリンク