超级列表框操作,导入导出、全选反选、排序例子

易语言 2020-07-01 18:08:10

超级列表框操作,导入导出、全选反选、排序例子

.子程序 超级列表框排序, 整数型, 公开, 返回排序时间,选中后排序还选中,必须项目数值不为0 没有默认为1
.参数 对象, 超级列表框
.参数 列索引, 整数型, , 索引值从 0 开始。
.参数 实际数据, 文本型, 可空 数组, 格式 {“今天:0”,“明天:1”} # iiiou添加该参数
.参数 类型, 整数型, 可空, 0=数值;1=文本;2=日期时间;3=逻辑;4=图片索引 # iiiou添加类型4
.参数 区分大小写, 逻辑型, 可空, 真为区分,默认为真
.参数 排序方式, 逻辑型, 可空, 真为小到大,默认为真
.局部变量 排序时间, 整数型
.局部变量 排序变量, 文本型, , "0"
.局部变量 序号数组, 整数型, , "0"
.局部变量 表项数值, 整数型, , "0"
.局部变量 图片数组, 整数型, , "0", # iiiou添加
.局部变量 状态图片, 整数型, , "0", # iiiou添加
.局部变量 变量, 整数型
.局部变量 数据, 文本型
.局部变量 列数, 整数型
.局部变量 行数, 整数型
.局部变量 单元数, 整数型
.局部变量 选中项, 整数型
.局部变量 i, , , , # iiiou添加

排序时间 = 取启动时间 ()
类型 = 选择 (类型 ≥ 0 且 类型 ≤ 4, 类型, 1)
区分大小写 = 选择 (是否为空 (区分大小写), 真, 区分大小写)
排序方式 = 选择 (是否为空 (排序方式), 真, 排序方式)
.如果真 (对象.现行选中项 ≠ -1)
.如果真 (对象.取表项数值 (对象.现行选中项) = 0)
对象.置表项数值 (对象.现行选中项, 1)
.如果真结束
选中项 = 对象.取表项数值 (对象.现行选中项)
.如果真结束
.计次循环首 (对象.取表项数 (), 变量)
.如果 (类型 = 4) ' # iiiou添加
数据 = 到文本 (对象.取图片 (变量 - 1, 列索引))
.否则
数据 = 删首尾空 (对象.取标题 (变量 - 1, 列索引))
.如果结束
.计次循环首 (取数组成员数 (实际数据), i) ' # iiiou添加
.如果真 (取文本左边 (实际数据 [i], 取文本长度 (数据) + 1) = 数据 + “:”)
数据 = 子文本替换 (实际数据 [i], 数据 + “:”, “”, , , 真)
跳出循环 ()
.如果真结束

.计次循环尾 ()
.如果 (类型 ≠ 3)
.如果 (类型 = 4) ' # iiiou添加
单元数 = 二分查找 (排序变量, 数据, 0, 区分大小写)
.否则
单元数 = 二分查找 (排序变量, 数据, 类型, 区分大小写)
.如果结束
插入成员 (排序变量, 单元数, 数据)
插入成员 (序号数组, 单元数, 变量 - 1)
插入成员 (表项数值, 单元数, 对象.取表项数值 (变量 - 1))
插入成员 (状态图片, 单元数, 对象.取当前状态图片 (变量 - 1)) ' # iiiou添加
.否则
插入成员 (序号数组, 选择 (数据 = “假”, 变量, 1), 变量 - 1)
插入成员 (表项数值, 选择 (数据 = “假”, 变量, 1), 对象.取表项数值 (变量 - 1))
插入成员 (状态图片, 选择 (数据 = “假”, 变量, 1), 对象.取当前状态图片 (变量 - 1)) ' # iiiou添加
.如果结束

.计次循环尾 ()