递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 100|回复: 3
打印 上一主题 下一主题

[视窗] [传感器-易语言转火山系列分享] 增强树形框多级枚举和收缩

[复制链接]

3

主题

8

帖子

34

积分

核心用户

专注传感器,接近开关,光电开关,安全光幕,拉绳开关,跑偏开关

Rank: 9Rank: 9Rank: 9

积分
34
跳转到指定楼层
楼主
发表于 昨天 20:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 传感器 于 2025-11-20 21:18 编辑

十年易语言转火山,通过项目直接转换进行学习,有心得会以帖子的标题做系列,进行分享交流,实践证明我这样做很对,刚上手连怎么新建窗口都不知道,现在通过项目边转换边学习,才几天就可以顺利开展易语言项目转火山的工作了。
早上刚开始接触火山增强树形框,很懵,不知道句柄怎么玩,看论坛也有很多人在问,尤其是枚举所有的句柄,因为后面所有的命令都是以此作为基础,我需要的是窗口首次激活,将设置的几十个项目进行收缩,所以下午写好了就想着分享,老手不用看,新手可以参考。

我已经将每一行命令的编程逻辑,写得很清楚,方便新手在直接抄的基础上,还可以懂得为什么这样做,授人以鱼不如授人以渔。理论上这样可以无限套娃,如果你们有几个树形框,可以改成方法,然后投递参数进行调用,也可以多设置几个参数,这样一个方法就可以实现多个树形框多种操作。



  1. <火山程序 类型 = "通常" 版本 = 1 />

  2. 方法 窗口_主窗口_首次激活 <接收事件 类型 = 整数 注释 = "当窗口创建完毕后被首次激活显示时发送此事件,在接收到此事件后用户可以开始在窗口内的画板组件上写出内容.">
  3. 参数 来源对象 <类型 = 窗口_主窗口 注释 = "提供事件产生的具体来源对象">
  4. 参数 标记值 <类型 = 整数 注释 = "用户调用"挂接事件"命令时所提供的"标记值"参数值,非此方式挂接事件则本参数值固定为0.">
  5. {
  6.     变量 一级项目句柄 <类型 = 变整数 注释 = "第一层">
  7.     变量 二级项目句柄 <类型 = 变整数 注释 = "第二层,理论上可无限">
  8.     一级项目句柄 = 树形框_导航.取根项目 () //先获取根据路,就是第一个一级项目的句柄,以此作为起点
  9.     计次循环 (100) //这里根据实际情况修改,多改点没关系,下面已设置没有项目时跳出循环
  10.     {
  11.         树形框_导航.收缩 (一级项目句柄) //将第一个收缩
  12.         调试输出 (一级项目句柄, 树形框_导航.取项目文本 (一级项目句柄))
  13.         如果真 (树形框_导航.是否有子项目 (一级项目句柄)) //判断一级句柄是否有子项目,没有就检查下一个一级句柄
  14.         {
  15.             二级项目句柄 = 树形框_导航.取首子项目 (一级项目句柄) // 获取一级句柄下的第一个二级句柄,原理和刚才的树形框_导航.取根项目 ()相同
  16.             树形框_导航.收缩 (二级项目句柄)  // 接下来就是循环的操作,其实就是套娃,一层又一层,所以理论上是可以无限,但是一般缩两层就够了
  17.             计次循环 (100) //这里根据实际情况修改,多改点没关系,下面已设置没有项目时跳出循环
  18.             {
  19.                 二级项目句柄 = 树形框_导航.取后兄弟项目 (二级项目句柄)
  20.                 树形框_导航.收缩 (二级项目句柄)
  21.                 // 调试输出 (树形框_导航.取项目文本 (二级项目句柄))
  22.                 调试输出 (二级项目句柄, 树形框_导航.取项目文本 (二级项目句柄))
  23.                 如果真 (二级项目句柄 == 0)
  24.                 {
  25.                     跳出循环
  26.                 }

  27.             }
  28.         }

  29.         一级项目句柄 = 树形框_导航.取后兄弟项目 (一级项目句柄)
  30.         如果真 (一级项目句柄 == 0)
  31.         {
  32.             跳出循环
  33.         }
  34.     }

  35.     返回 (0)



  36.     一级项目句柄 = 树形框_导航.取根项目 ()
  37.     树形框_导航.收缩 (一级项目句柄)
  38.     树形框_导航.取首子项目 ()
  39.     计次循环 (树形框_导航.取项目数 ())
  40.     {
  41.         一级项目句柄 = 树形框_导航.取后兄弟项目 (一级项目句柄)
  42.         树形框_导航.收缩 (一级项目句柄)
  43.         如果真 (一级项目句柄 == 0)
  44.         {
  45.             跳出循环
  46.         }
  47.         调试输出 (一级项目句柄)
  48.     }
  49.     返回 (0)

  50.     调试输出 (一级项目句柄, 树形框_导航.取后兄弟项目 (一级项目句柄))
  51.     返回 (0)

  52.     返回 (0)
  53.     如果真 (树形框_导航.是否有子项目 (一级项目句柄))
  54.     {
  55.         树形框_导航.收缩 (一级项目句柄)
  56.     }
  57.     // 返回 (0)
  58.     计次循环 (树形框_导航.取项目数 ())
  59.     {
  60.         树形框_导航.现行选中项 = 取循环索引 ()
  61.         调试输出 (树形框_导航.现行选中项)

  62.         // result = 树形框_导航.取父项目 (取循环索引 ())
  63.         // 调试输出 (result)
  64.         // 如果真 (树形框_导航.取父项目 (取循环索引 () - 1) == -1)
  65.         {
  66.             // // 树形框_导航.
  67.             树形框_导航.收缩 (取循环索引 () - 1)
  68.         }
  69.     }
  70.     返回 (0)
  71. }
复制代码

691f0f36cc8a1.png (212.62 KB, 下载次数: 27)

691f0f36cc8a1.png
接近开关,光电开关,安全光幕,拉绳开关,跑偏开关
回复

使用道具 举报

10

主题

47

帖子

193

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
193
沙发
发表于 昨天 21:20 | 只看该作者
不明觉厉
回复

使用道具 举报

9

主题

178

帖子

1366

积分

金牌会员

Rank: 6Rank: 6

积分
1366
板凳
发表于 昨天 22:38 来自手机 | 只看该作者
這個點讚
回复

使用道具 举报

2

主题

214

帖子

2038

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2038
QQ
地板
发表于 1 小时前 | 只看该作者
不错顶一个
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2025-11-21 02:07 , Processed in 0.100540 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表