核心用户
专注传感器,接近开关,光电开关,安全光幕,拉绳开关,跑偏开关
  
- 积分
- 34
|
本帖最后由 传感器 于 2025-11-20 21:18 编辑
十年易语言转火山,通过项目直接转换进行学习,有心得会以帖子的标题做系列,进行分享交流,实践证明我这样做很对,刚上手连怎么新建窗口都不知道,现在通过项目边转换边学习,才几天就可以顺利开展易语言项目转火山的工作了。
早上刚开始接触火山增强树形框,很懵,不知道句柄怎么玩,看论坛也有很多人在问,尤其是枚举所有的句柄,因为后面所有的命令都是以此作为基础,我需要的是窗口首次激活,将设置的几十个项目进行收缩,所以下午写好了就想着分享,老手不用看,新手可以参考。
我已经将每一行命令的编程逻辑,写得很清楚,方便新手在直接抄的基础上,还可以懂得为什么这样做,授人以鱼不如授人以渔。理论上这样可以无限套娃,如果你们有几个树形框,可以改成方法,然后投递参数进行调用,也可以多设置几个参数,这样一个方法就可以实现多个树形框多种操作。

- <火山程序 类型 = "通常" 版本 = 1 />
- 方法 窗口_主窗口_首次激活 <接收事件 类型 = 整数 注释 = "当窗口创建完毕后被首次激活显示时发送此事件,在接收到此事件后用户可以开始在窗口内的画板组件上写出内容.">
- 参数 来源对象 <类型 = 窗口_主窗口 注释 = "提供事件产生的具体来源对象">
- 参数 标记值 <类型 = 整数 注释 = "用户调用"挂接事件"命令时所提供的"标记值"参数值,非此方式挂接事件则本参数值固定为0.">
- {
- 变量 一级项目句柄 <类型 = 变整数 注释 = "第一层">
- 变量 二级项目句柄 <类型 = 变整数 注释 = "第二层,理论上可无限">
- 一级项目句柄 = 树形框_导航.取根项目 () //先获取根据路,就是第一个一级项目的句柄,以此作为起点
- 计次循环 (100) //这里根据实际情况修改,多改点没关系,下面已设置没有项目时跳出循环
- {
- 树形框_导航.收缩 (一级项目句柄) //将第一个收缩
- 调试输出 (一级项目句柄, 树形框_导航.取项目文本 (一级项目句柄))
- 如果真 (树形框_导航.是否有子项目 (一级项目句柄)) //判断一级句柄是否有子项目,没有就检查下一个一级句柄
- {
- 二级项目句柄 = 树形框_导航.取首子项目 (一级项目句柄) // 获取一级句柄下的第一个二级句柄,原理和刚才的树形框_导航.取根项目 ()相同
- 树形框_导航.收缩 (二级项目句柄) // 接下来就是循环的操作,其实就是套娃,一层又一层,所以理论上是可以无限,但是一般缩两层就够了
- 计次循环 (100) //这里根据实际情况修改,多改点没关系,下面已设置没有项目时跳出循环
- {
- 二级项目句柄 = 树形框_导航.取后兄弟项目 (二级项目句柄)
- 树形框_导航.收缩 (二级项目句柄)
- // 调试输出 (树形框_导航.取项目文本 (二级项目句柄))
- 调试输出 (二级项目句柄, 树形框_导航.取项目文本 (二级项目句柄))
- 如果真 (二级项目句柄 == 0)
- {
- 跳出循环
- }
- }
- }
- 一级项目句柄 = 树形框_导航.取后兄弟项目 (一级项目句柄)
- 如果真 (一级项目句柄 == 0)
- {
- 跳出循环
- }
- }
- 返回 (0)
- 一级项目句柄 = 树形框_导航.取根项目 ()
- 树形框_导航.收缩 (一级项目句柄)
- 树形框_导航.取首子项目 ()
- 计次循环 (树形框_导航.取项目数 ())
- {
- 一级项目句柄 = 树形框_导航.取后兄弟项目 (一级项目句柄)
- 树形框_导航.收缩 (一级项目句柄)
- 如果真 (一级项目句柄 == 0)
- {
- 跳出循环
- }
- 调试输出 (一级项目句柄)
- }
- 返回 (0)
- 调试输出 (一级项目句柄, 树形框_导航.取后兄弟项目 (一级项目句柄))
- 返回 (0)
- 返回 (0)
- 如果真 (树形框_导航.是否有子项目 (一级项目句柄))
- {
- 树形框_导航.收缩 (一级项目句柄)
- }
- // 返回 (0)
- 计次循环 (树形框_导航.取项目数 ())
- {
- 树形框_导航.现行选中项 = 取循环索引 ()
- 调试输出 (树形框_导航.现行选中项)
- // result = 树形框_导航.取父项目 (取循环索引 ())
- // 调试输出 (result)
- // 如果真 (树形框_导航.取父项目 (取循环索引 () - 1) == -1)
- {
- // // 树形框_导航.
- 树形框_导航.收缩 (取循环索引 () - 1)
- }
- }
- 返回 (0)
- }
复制代码
|
|