「同じ名前のアイテムがない」ことが条件ですが、以下のようにすると同一階層内での上下移動が可能になります。
'サンプル1
上移動を、「?を」で、関数定義。
下移動を、「?を」で、関数定義。
パンツリーを、作る。
その、サイズは、(0,0,400,200)
その、アイテムは、『柄あり\しましま
柄あり\しましま\水色
柄あり\しましま\ピンク
柄あり\すけすけ
柄あり\水玉
柄あり\鬼のパンツ\赤オニ用
柄あり\鬼のパンツ\青オニ用
柄なし\ブリーフ
柄なし\トランクス
柄なし\トランクス\ボクサー
』
パンツリーの、「」を、ツリー展開。
上移動ボタンを、作る。
その、イベントは、(
「パンツリー」を、上移動。
パンツリーの、『』を、ツリー展開。
)
(その、右側)に、下移動ボタンを、作る。
その、イベントは、(
「パンツリー」を、下移動。
パンツリーの、『』を、ツリー展開。
)
待機。
*上移動
ツリー名@は、引数取得。
移動共通処理その壱
移動用の、0列目から、名前を、表検索。
上アイテムは、移動用#(それ-1)
もし、上アイテム=「」ならば、戻る。
移動用の、上アイテム&"\n"を、「」に、置換。
名前を、「{名前}\n{上アイテム}」に、置換。
移動用は、それ。
移動共通処理その弐
戻る。
*下移動
ツリー名@は、引数取得。
移動共通処理その壱
移動用の、0列目から、名前を、表検索。
下アイテムは、移動用#(それ+1)
もし、下アイテム=「」ならば、戻る。
移動用の、下アイテム&"\n"を、「」に、置換。
名前を、「{下アイテム}\n{名前}」に、置換。
移動用は、それ。
移動共通処理その弐
戻る。
*移動共通処理その壱
「それ={ツリー名@}の、選択位置」を、ひまわりする。
もし、それ<0ならば、待機。
「アイテム={ツリー名@}の、アイテム。
名前=アイテム#({ツリー名@}の、選択位置)」を、ひまわりする。
子アイテム=「」
親アイテム=「」
移動用=「」
名前で、『\』の、出現回数。
条件は、それ。
アイテムを、反復(
テキストは、それ。
『\』の、出現回数
それで、条件分岐。
条件の時、移動用に、テキスト&"\n"を、足す。
(条件+1)以上の時、子アイテムに、テキスト&"\n"を、足す。
その他の時、親アイテムに、テキスト&"\n"を、足す。
)
戻る。
*移動共通処理その弐
親アイテムの、『\』を、『\\』に、置換。
親アイテムは、それ。
反復(
条件は、それ。
置換用=「」
移動用を、反復(
あいてむ=それ
「s#^{条件}\\\\[^\\\\]*##kg」で、正規表現置換。
もし、それ=「」ならば、(
置換用に、あいてむ&"\n"を、足す。
)
)
もし、置換用<>「」ならば、(
親アイテムの、条件&"\n"を、「{条件}\n{置換用}」に、置換。
親アイテムは、それ。
)
)
もし、親アイテム<>「」ならば、移動用=親アイテム
「子アイテム<>\"\"」で、ループ(
移動用の、『\\』を、『\』に、置換。
『\』を、『\\』に、置換。
移動用は、それ。
反復(
条件は、それ。
置換用=「」
子アイテムを、反復(
あいてむ=それ
「s#^{条件}\\\\[^\\\\]*##kg」で、正規表現置換。
もし、それ=「」ならば、(
置換用に、あいてむ&"\n"を、足す。
)
)
もし、置換用<>「」ならば、(
移動用の、条件&"\n"を、「{条件}\n{置換用}」に、置換。
移動用は、それ。
置換用を、反復(
子アイテムの、それ&"\n"を、「」に、置換。
子アイテムは、それ。
)
)
)
)
移動用の、『\\』を、『\』に、置換。
「{ツリー名@}の、アイテムは、それ。」を、ひまわりする。
戻る。
作成日 2003/06/20 作成時のひまわりバージョン 1.76b