STree Stree1{
X = 10;
Y = 10;
Width = 200;
Height = 218;
Function ExpandAll(){
/* ルートアイテム以下のすべてを開く */
_ExpandAll_internal(RootItem, $TRUE);
}
Function CollapseAll(){
/* ルートアイテム以下のすべてを閉じる */
_ExpandAll_internal(RootItem, $FALSE);
}
Function _ExpandAll_internal(item, bExpand){
/* 引数itemを起点にitemと同じ階層のSTreeItemを開閉する */
var iter = item;
while(iter != null){
if(iter.Child != null) { ・・・・・(1)
/* ★ポイント
子アイテムが存在する場合、再帰的に開閉する */
_ExpandAll_internal(iter.Child, bExpand);
/* ルートアイテム以外であれば開閉する */
if(iter.Parent != null){ ・・・・・・(2)
iter.Expanded = bExpand; ・・・・・・(3)
}
}
/* 次のアイテムを取得 */
iter = iter.Next; ・・・・・・(4)
}
}
}
Button button1{
X = 221;
Y = 120;
Width = 100;
Height = 100;
Title = "開く";
Function onTouch(e){
^.STree1.ExpandAll();
}
}
|