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)

ポイントは波括弧を設定している部分です。
配列の先頭の場合は”{“から始まる、
配列の末尾の場合は”}”で終わるようにしています。

実行結果

関連記事一覧

NEW