易语言模仿QQ列表框效果源码
.版本 2
.支持库 iext
.支持库 spec
.程序集 窗口程序集1
.程序集变量 透明标签, 透明标签
.程序集变量 标签, 透明标签, , "0"
.程序集变量 分组标签, 透明标签, , "0"
.子程序 展开
.参数 分组标记, 文本型
.局部变量 分组数, 整数型
.局部变量 i, 整数型
.局部变量 分组代号, 整数型
.局部变量 n, 整数型
分组代号 = 到整数 (取文本右边 (分组标记, 1))
分组数 = 取数组成员数 (标签)
.计次循环首 (分组数, i)
标签 [i].可视 = 真
标签 [i].顶边 = (透明标签1.顶边 + 透明标签1.高度) × (i + 分组代号) - 透明标签1.高度
.计次循环尾 ()
.计次循环首 (取数组成员数 (分组标签), n)
.如果真 (n > 分组代号)
分组标签 [n].顶边 = 分组标签 [n].顶边 + 透明标签.高度 × (i + 2)
.如果真结束
.计次循环尾 ()
.子程序 收缩
.参数 分组标记, 文本型, 可空
.局部变量 分组数, 整数型
.局部变量 i, 整数型
.局部变量 分组代号, 整数型
分组数 = 取数组成员数 (标签)
.计次循环首 (分组数, i)
标签 [i].可视 = 真
标签 [i].顶边 = 透明标签1.顶边
标签 [i].可视 = 假
.计次循环尾 ()
分组代号 = 到整数 (取文本右边 (分组标记, 1))
.计次循环首 (取数组成员数 (分组标签), i)
.如果真 (i > 分组代号)
分组标签 [i].顶边 = (透明标签1.顶边 + 透明标签1.高度) × i - 透明标签1.高度
.如果真结束
.计次循环尾 ()
.子程序 加入数据
.参数 成员名称, 文本型, 数组
.局部变量 分组数, 整数型
.局部变量 i, 整数型
分组数 = 取数组成员数 (成员名称)
.计次循环首 (分组数, i)
复制窗口组件 (透明标签1, 透明标签)
加入成员 (标签, 透明标签)
透明标签.标记 = “数据”
透明标签.标题 = 成员名称 [i]
.计次循环尾 ()
.子程序 加载分组
.参数 分组信息, 文本型, 数组
.局部变量 i, 整数型, 静态
.计次循环首 (取数组成员数 (分组信息), i)
复制窗口组件 (透明标签1, 透明标签)
加入成员 (分组标签, 透明标签)
透明标签.可视 = 真
透明标签.顶边 = (透明标签1.顶边 + 透明标签1.高度) × i - 透明标签1.高度
透明标签.标记 = “分组” + 到文本 (i)
透明标签.标题 = 分组信息 [i] + 到文本 (i)
.计次循环尾 ()
.子程序 __启动窗口_创建完毕
.局部变量 分组信息, 文本型, , "7"
.局部变量 好友信息, 文本型, , "6"
分组信息 = { “我的好友”, “我的好友”, “我的好友”, “我的好友”, “我的好友”, “我的好友”, “我的好友” }
好友信息 = { “张三”, “李四”, “王五”, “浩六”, “高七”, “葛八” }
加载分组 (分组信息)
加入数据 (好友信息)
.子程序 _透明标签1_鼠标左键被放开, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 展开, 逻辑型, 静态
透明标签 = 取事件组件 ()
.判断开始 (寻找文本 (透明标签.标记, “分组”, , 假) > -1)
.如果 (展开 = 假)
展开 (透明标签.标记)
展开 = 真
.否则
收缩 (透明标签.标记)
展开 = 假
.如果结束
.判断 (透明标签.标记 = “数据”)
项目_被单击子程序 (透明标签.标题)
.默认
.判断结束
.子程序 _透明标签1_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
透明标签 = 取事件组件 ()
.判断开始 (透明标签.标记 = “数据”)
项目_被双击子程序 (透明标签.标题)
.默认
.判断结束
.子程序 项目_被单击子程序
.参数 项目标题, 文本型
调试输出 (项目标题)
.子程序 项目_被双击子程序
.参数 项目标题, 文本型
调试输出 (项目标题 + “11”)
易语言仿QQ好友列表框源码