UWSCでツリーメニューを作成

uwsc
ツリーメニューを作成する
ツリーメニューは配列を作成することで簡単に実現できるものの、
配列用の文字列を作成するのは少し工夫が必要。

作成方法
dim list[5] = "メニュー1","メニュー2","{サブメニュー1","サブメニュー2","サブメニュー3}","メニュー3"
ret= popupmenu(list)
msgbox("位置:" + ret+ " が選択されました。")
注目してい欲しいのが文字列の部分です。
メニュー2からサブメニューを作成する階層部分が
“メニュー2″,”{サブメニュー1″,”サブメニュー2″,”サブメニュー3}”
となっています。
“{サブメニュー1”
“サブメニュー2”
“サブメニュー3}”
のように、
「先頭のサブメニューには開始の波括弧」
「末尾のサブメニューには終了の波括弧」
が必要になることがポイントとなります。
サンプル
上述したツリーを動的に作成します。
連想配列を作成する方法、ならびにそのサンプルについては
以下を参照ください。
dim menuAry[0]
for i = 0 to length(levelAry) - 1
key = levelAry[i, HASH_KEY]
value = levelAry[i, HASH_VAL]
values = split(value, ",")
resize(menuAry, length(menuAry))
menuAry[length(menuAry) - 1] = key
for j = 0 to length(values) - 1
data = menuAry[length(menuAry) - 1]
resize(menuAry, length(menuAry))
if j = 0 then
menuAry[length(menuAry) - 1] = "{" + values[j]
elseif j = length(values) - 1 then
menuAry[length(menuAry) - 1] = values[j] + "}"
else
menuAry[length(menuAry) - 1] = values[j]
endif
next
next
index = POPUPMENU(menuAry)
ポイントは波括弧を設定している部分です。
配列の先頭の場合は”{“から始まる、
配列の末尾の場合は”}”で終わるようにしています。
実行結果

