首页 > 编程 > 易语言 > 正文

易语言超级列表框点击表头进行排序的代码

2024-07-21 23:02:33
字体:
来源:转载
供稿:网友

超级列表框排序模块源码

.版本 2.支持库 iext.程序集 程序集1.子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码_临时子程序 () ' 在初始化代码执行完毕后调用测试代码返回 (0) ' 可以根据您的需要返回任意数值.子程序 _临时子程序' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 注意不要修改本子程序的名称、参数及返回值类型。.子程序 超级列表框排序, 整数型, 公开, 返回排序时间,选中后排序还选中,必须项目数值不为0 没有默认为1.参数 对象, 超级列表框.参数 列索引, 整数型, , 索引值从 0 开始。.参数 类型, 整数型, 可空, 0=数值;1=文本;2=日期时间;3=逻辑.参数 区分大小写, 逻辑型, 可空, 真为区分,默认为真.参数 排序方式, 逻辑型, 可空, 真为小到大,默认为真.局部变量 排序时间, 整数型.局部变量 排序变量, 文本型, , "0".局部变量 序号数组, 整数型, , "0".局部变量 表项数值, 整数型, , "0".局部变量 变量, 整数型.局部变量 数据, 文本型.局部变量 列数, 整数型.局部变量 行数, 整数型.局部变量 单元数, 整数型.局部变量 选中项, 整数型排序时间 = 取启动时间 ()类型 = 选择 (类型 ≥ 0 且 类型 ≤ 3, 类型, 1)区分大小写 = 选择 (是否为空 (区分大小写), 真, 区分大小写)排序方式 = 选择 (是否为空 (排序方式), 真, 排序方式).如果真 (对象.现行选中项 ≠ -1)  .如果真 (对象.取表项数值 (对象.现行选中项) = 0)    对象.置表项数值 (对象.现行选中项, 1)  .如果真结束  选中项 = 对象.取表项数值 (对象.现行选中项).如果真结束.计次循环首 (对象.取表项数 (), 变量)  数据 = 删首尾空 (对象.取标题 (变量 - 1, 列索引))  .如果 (类型 ≠ 3)    单元数 = 二分查找 (排序变量, 数据, 类型, 区分大小写)    插入成员 (排序变量, 单元数, 数据)    插入成员 (序号数组, 单元数, 变量 - 1)    插入成员 (表项数值, 单元数, 对象.取表项数值 (变量 - 1))  .否则    插入成员 (序号数组, 选择 (数据 = “假”, 变量, 1), 变量 - 1)    插入成员 (表项数值, 选择 (数据 = “假”, 变量, 1), 对象.取表项数值 (变量 - 1))  .如果结束.计次循环尾 ()列数 = 对象.取列数 ()行数 = 取数组成员数 (序号数组)单元数 = 行数 × 列数重定义数组 (排序变量, 假, 单元数).计次循环首 (单元数, 变量)  排序变量 [变量] = 对象.取标题 (序号数组 [取绝对值 (选择 (排序方式, -1, 行数) - (变量 - 1) \ 列数)], (变量 - 1) % 列数).计次循环尾 ().计次循环首 (单元数, 变量)  对象.置标题 ((变量 - 1) \ 列数, (变量 - 1) % 列数, 排序变量 [变量])  对象.置表项数值 ((变量 - 1) \ 列数, 表项数值 [取绝对值 (选择 (排序方式, -1, 行数) - (变量 - 1) \ 列数)]).计次循环尾 ().如果真 (选中项 ≠ 0)  .计次循环首 (对象.取表项数 (), 变量)    .如果真 (对象.取表项数值 (变量 - 1) = 选中项)      对象.现行选中项 = 变量 - 1      对象.保证显示 (变量 - 1)      跳出循环 ()    .如果真结束  .计次循环尾 ().如果真结束返回 (取启动时间 () - 排序时间).子程序 二分查找, 整数型.参数 数组, 文本型, 数组.参数 待查, 文本型.参数 类型, 整数型.参数 区分大小写, 逻辑型.局部变量 K, 整数型.局部变量 M, 整数型.局部变量 J, 整数型.局部变量 数值A, 双精度小数型.局部变量 数值B, 双精度小数型.局部变量 文本, 文本型K = 1M = 取数组成员数 (数组).如果真 (M = 0)  返回 (1).如果真结束.判断开始 (类型 = 0)  数值A = 到数值 (待查)  .如果真 (数值A ≥ 到数值 (数组 [M]))    返回 (M + 1)  .如果真结束  .如果真 (数值A ≤ 到数值 (数组 [1]))    返回 (1)  .如果真结束  .判断循环首 (K < M - 1)    J = (K + M) \ 2    数值B = 到数值 (数组 [J])    .如果真 (数值A = 数值B)      K = J      跳出循环 ()    .如果真结束    .如果 (数值A < 数值B)      M = J    .否则      K = J    .如果结束  .判断循环尾 ().判断 (类型 = 1)  .如果真 (文本比较 (待查, 数组 [M], 区分大小写) ≥ 0)    返回 (M + 1)  .如果真结束  .如果真 (文本比较 (待查, 数组 [1], 区分大小写) ≤ 0)    返回 (1)  .如果真结束  .判断循环首 (K < M - 1)    J = (K + M) \ 2    .如果真 (文本比较 (待查, 数组 [J], 区分大小写) = 0)      K = J      跳出循环 ()    .如果真结束    .如果 (文本比较 (待查, 数组 [J], 区分大小写) < 0)      M = J    .否则      K = J    .如果结束  .判断循环尾 ().判断 (类型 = 2)  数值A = 取字节集数据 (到字节集 (到时间 (待查)), #双精度小数型)  .如果真 (数值A ≥ 取字节集数据 (到字节集 (到时间 (数组 [M])), #双精度小数型))    返回 (M + 1)  .如果真结束  .如果真 (数值A ≤ 取字节集数据 (到字节集 (到时间 (数组 [1])), #双精度小数型))    返回 (1)  .如果真结束  .判断循环首 (K < M - 1)    J = (K + M) \ 2    数值B = 取字节集数据 (到字节集 (到时间 (数组 [J])), #双精度小数型)    .如果真 (数值A = 数值B)      K = J      跳出循环 ()    .如果真结束    .如果 (数值A < 数值B)      M = J    .否则      K = J    .如果结束  .判断循环尾 ().默认.判断结束返回 (K + 1)

超级列表框排序例程

.版本 2.程序集 窗口程序集1.程序集变量 变量, 文本型.子程序 _超级列表框1_表头被单击.参数 被单击列索引, 整数型.如果真 (被单击列索引 = 0)  .如果 (标签1.标题 = “1”)    ' 处理表和图标对应 ()    超级列表框排序 (超级列表框1, 0, 1, 真, 真)    ' 重新排列图标 ()    标签1.标题 = “2”  .否则    ' 处理表和图标对应 ()    超级列表框排序 (超级列表框1, 0, 1, 真, 假)    ' 重新排列图标 ()    标签1.标题 = “1”  .如果结束.如果真结束.如果真 (被单击列索引 = 1)  .如果 (标签1.标题 = “1”)    ' 处理表和图标对应 ()    超级列表框排序 (超级列表框1, 1, 1, 真, 真)    ' 重新排列图标 ()    标签1.标题 = “2”  .否则    ' 处理表和图标对应 ()    超级列表框排序 (超级列表框1, 1, 1, 真, 假)    ' 重新排列图标 ()    标签1.标题 = “1”  .如果结束.如果真结束.如果真 (被单击列索引 = 2)  .如果 (标签1.标题 = “1”)    ' 处理表和图标对应 ()    超级列表框排序 (超级列表框1, 2, 1, 真, 真)    ' 重新排列图标 ()    标签1.标题 = “2”  .否则    ' 处理表和图标对应 ()    超级列表框排序 (超级列表框1, 2, 1, 真, 假)    ' 重新排列图标 ()    标签1.标题 = “1”  .如果结束.如果真结束

运行结果:

易语言,超级列表框,点击,排序,代码

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对VeVb武林网的支持。


注:相关教程知识阅读请移步到易语言教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表