「ポップアップメニューを手軽に扱う」の版間の差分
<source>タグを<syntaxhighlight>タグに置き換える |
変数に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"]; | ||
スポンサーリンク