#code=950T936
ENVI^ EnviMode=1
ENVI^ ForceLocal=1
SET$  &NL=0D 0A
SET$  &NLa=0A
SET$  &TAB=09 //下一个兄弟节点
SET$  &TABc=0B //孩子节点开始  //可以嵌套
SET$  &TABe=0C //孩子节点结束  //可以嵌套
SET &PSZ=  //默认:32:32
//SET PSZ=:64  //
//单个节点格式  未选图片序号:已选图片序号:文字
SET &MUI_NODE_DATA=
 \0:0:节点1%TABc%0:0:节点1.1%TAB%0:0:节点1.2%TABe%
 \1:1:节点2%TABc%1:1:节点2.1
                             \%TABc%1:1:节点2.1.1%TAB%1:1:节点2.1.2%TABe%
                             \1:1:节点2.2%TABe%
 \2:2:节点3%TABc%2:2:节点3.1%TAB%2:2:节点3.2%TABe%
 \3:3:节点4%TABc%3:3:节点4.1%TAB%3:3:节点4.2%TABe%
 \3:3:节点5
 
SET &MUI_NODE_DATAD=3:3:节点X.1%TAB%2:2:节点X.2

SET &_FONT= -font:18::::50  
CALC #&&TVM_SETLINECOLOR=0x1100 + 40
CALC #&&TVM_GETLINECOLOR=0x1100 + 41

//Expand控制值:
SET   &TVE_COLLAPSE=0x0001  //收缩
SET   &TVE_EXPAND=0x0002    //展开
SET   &TVE_TOGGLE=0x0003   //反转
SET   &TVE_EXPANDPARTIALX=0x4002  //部分展开
SET   &TVE_COLLAPSERESET=0x8000  //收缩列表并移除子项

//返回Expand状态:
SET &TVIS_EXPANDED=0x0020
SET &TVIS_EXPANDEDONCE=0x0040
SET &TVIS_EXPANDPARTIAL=0x0080


CALL @Win1
 
_SUB Win1,W347H455,PECMD TREE演示,,"."#4,,,  //-disminb  //-maxb
    TREE%_FONT% -color:0x8F#0xFFFF Tree1,L20T20W300H300,%PSZ%"."#1%TAB%"."#2%TAB%"."#3%TAB%"."#4,%MUI_NODE_DATA%,0x10000127
    ENVI @Tree1.SENDMSG=%TVM_SETLINECOLOR%;0;0xFF00  //设置连线为红色
    ENVI @Tree1.SENDMSG=:&&LineColor;%TVM_GETLINECOLOR%  //获取连线颜色  0xFF000000=4278190080:没设置
    //MESS-  [%&LineColor%]
    ENVI @Tree1.Expand=1   //节点1 展开
    ENVI @Tree1.Expand=2   //节点3 展开
    ENVI @Tree1.Expand=3   //节点3 展开
    ENVI @Tree1.Expand=2.1    //节点2 展开
    TIME -t:1 ,2000, TEAM ENVI @Tree1.Expand=4;%TVE_EXPANDPARTIALX%| ENVI @Tree1.Expand=?4;&&ex4| ^EXEC PECMD MESS ex4:%&ex4%    //节点4 展开
    TIME -t:1 ,3000, ENVI @Tree1.Expand=2.1;%TVE_COLLAPSE%  //节点2 收拢
    //ENVI @Tree1.Expand=?3;&&ex3   //节点3 展开
    //^EXEC PECMD MESS ex3:%&ex3%

    SET &node=2.2
    ITEM ITEM1,L58T348W60H30,TEST, OnTEST
    ITEM ITEM1,L128T348W60H30,?选择, OnQSel
    ITEM ITEM1,L208T348W60H30,选择, TEAM ENVI  @Tree1.Sel=%node%;*2
_END

_SUB  OnQSel
//    TEAM ENVI  @Tree1.Sel=?&node| ENVI  @Tree1.Sel=?@&hnode| MESS 选择 [%node%]  [%hnode%]
    TEAM ENVI  @Tree1.Sel=?*&node1| ENVI  @Tree1.Sel=?@*&hnode| MESS 选择 [%node1%]  [%hnode%]
//    TEAM WAIT 2000| ENVI  @Tree1.Sel=?.100.200&node2;p2| ENVI  @Tree1.Sel=?.&hnode;hp| ENVI  @Tree1.Sel=?.@&hnode1;p1| MESS 鼠标处 [%node2%][%p2%]  [%node1%][%p1%]  [%hnode%]
_END

_SUB  OnTEST
    //TEAM ENVI @Tree1.HID=%node%;&node| MESS HID [%node%]
    //TEAM ENVI @Tree1.Val=?*;V| MESS 节点数 [%V%]
    //TEAM ENVI @Tree1.Val=?**;V| MESS 全节点数据 [%V%]
    //TEAM ENVI @Tree1.Val=?**2;V| MESS 节点树数据 [%V%]
    //TEAM ENVI @Tree1.Val=?**+2;V| MESS 节点子树数据 [%V%]
    //TEAM ENVI @Tree1.Val=?2;V| MESS 节点数据 [%V%]
    //TEAM ENVI @Tree1.Val=?*2;V| MESS 节点数 [%V%]  //11
    //TEAM ENVI @Tree1.Val=?*$2;V| MESS 后续兄弟节点数 [%V%]  //3
    //TEAM ENVI @Tree1.Val=?*+2;V| MESS 子树节点数 [%V%]  //4
    //TEAM ENVI @Tree1.Val=?;V| MESS 子树节点数 [%V%]  //4
    //TEAM ENVI @Tree1.Val=4.1;%MUI_NODE_DATA%| MESS %ERROR%  // 修改1节点
    //TEAM ENVI @Tree1.Val=4.1*;%MUI_NODE_DATA%| MESS %ERROR%  // 修改多节点
    //TEAM ENVI @Tree1.Val=2*;%MUI_NODE_DATA%| MESS %ERROR%  // 修改多节点
    //TEAM ENVI @Tree1.Val=4**;%MUI_NODE_DATA%| MESS %ERROR%  // 修改多节点+
    //TEAM ENVI @Tree1.Val=2*#;%MUI_NODE_DATAD%| MESS %ERROR%  // 修改多节点删除尾部节点
    //TEAM ENVI @Tree1.Val=2*$#;%MUI_NODE_DATAD%| MESS %ERROR%  // 修改多节点删除尾部节点跳过孩子
    //TEAM ENVI @Tree1.Val=+2*$;%MUI_NODE_DATAD%| MESS %ERROR%  // 后加多节点点跳过孩子
    //TEAM ENVI @Tree1.Val=>1*$;%MUI_NODE_DATAD%| MESS %ERROR%  // 后加多节点点跳过孩子
    //TEAM ENVI @Tree1.Val=-*2| MESS* %ERROR%  // 删除多节点到尾部
    //TEAM ENVI @Tree1.Val=-2#2| MESS* %ERROR%  //  删除N个节点
    //TEAM ENVI @Tree1.Val=-2| MESS* %ERROR%  //  删除单个节点
    //TEAM ENVI  @Tree1.Check=?*&node1| ENVI  @Tree1.Check=?@*&hnode| MESS 选择 [%node1%]  [%hnode%]
    //TEAM ENVI  @Tree1.Check=3.1;2
//    TEAM ENVI  @Tree1.Check=3.1;2| ENVI  @Tree1.Check=?*&node1| ENVI  @Tree1.Check=?@*&hnode| MESS 选择 [%node1%]  [%hnode%]
    TEAM ENVI  @Tree1.Enable=~3;2| ENVI  @Tree1.Enable=~?*&node1| ENVI  @Tree1.Enable=~?@*&hnode| MESS ???Enable [%node1%]  [%hnode%]
//    TEAM ENVI  @Tree1.UPOS=?#3;&L;&t;&r;&b| MESS POSI: [%L%] [%t%] [%r%] [%b%]
_END

