原版 大哥的 大哥威武
https://bbs.125.la/forum.php?mod ... B%E6%8E%92%E5%BA%8F
小修改了一下 可以支持 字节集 项目
回帖 复制直接可以用
|
超级列表框排序 | 整数型 | | |
超列EX | 超级列表框EX | | | | 参_列索引 | 整数型 | | | | 类型 | 整数型 | | | | 区分大小写 | 逻辑型 | | | | 排序方式 | 逻辑型 | | | | 选择框列 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_排序时间_数组 | 整数型 | | | 局_排序变量_数组 | 文本型 | | 0 | 局_序号_数组 | 整数型 | | 0 | 局_表项数值_数组 | 整数型 | | 0 | 局_超列_项目_数组_W | 字节集 | | 0 | 局_计次 | 整数型 | | | 局_超列取回数据 | 文本型 | | | 列数 | 整数型 | | | 行数 | 整数型 | | | 单元数 | 整数型 | | | 选中项 | 整数型 | | | 背景颜色 | 整数型 | | 0 | 项目尺寸 | 整数型 | | 0 | 选择框状态 | 整数型 | | 0 | 组件句柄 | 整数型 | | | 如果 (是否为空 (选择框列 )) 选择框列 = -1 组件句柄 = 组件取窗口绑定组件 (超列EX. 取窗口句柄 ()) 局_排序时间_数组 = 取启动时间 ()类型 = 选择 (类型 ≥ 0 且 类型 ≤ 3, 类型, 1 )区分大小写 = 选择 (是否为空 (区分大小写 ), 真, 区分大小写 )排序方式 = 选择 (是否为空 (排序方式 ), 真, 排序方式 )如果真 (超列EX.现行选中项 ≠ -1 )如果真 (超列EX. 取项目附加数值 (超列EX.现行选中项 ) = 0 )超列EX. 置项目附加数值 (超列EX.现行选中项, 1 )选中项 = 超列EX.取项目附加数值 (超列EX.现行选中项)计次循环首 (超列EX. 取项目数量 (), 局_计次 )局_超列取回数据 = 删首尾空 (超列EX. 取项目文本 (局_计次 - 1, 参_列索引 )) 如果 (类型 ≠ 3 )单元数 = 二分查找 (局_排序变量_数组, 局_超列取回数据, 类型, 区分大小写 )插入成员 (局_排序变量_数组, 单元数, 局_超列取回数据 )插入成员 (局_序号_数组, 单元数, 局_计次 - 1 )插入成员 (局_表项数值_数组, 单元数, 超列EX. 取项目附加数值 (局_计次 - 1 )) 插入成员 (项目尺寸, 单元数, 超列EX. 取项目尺寸 (局_计次 - 1 )) 如果真 (选择框列 > -1 )插入成员 (选择框状态, 单元数, 组件取选择框元素数据 (组件句柄, #元素归属_超列项目, 局_计次 - 1, 选择框列, 0, 16 )) 插入成员 (局_序号_数组, 选择 (局_超列取回数据 = “假”, 局_计次, 1 ), 局_计次 - 1 )插入成员 (局_表项数值_数组, 选择 (局_超列取回数据 = “假”, 局_计次, 1 ), 超列EX. 取项目附加数值 (局_计次 - 1 )) 插入成员 (项目尺寸, 选择 (局_超列取回数据 = “假”, 局_计次, 1 ), 超列EX. 取项目尺寸 (局_计次 - 1 )) 如果真 (选择框列 > -1 )插入成员 (选择框状态, 选择 (局_超列取回数据 = “假”, 局_计次, 1 ), 组件取选择框元素数据 (组件句柄, #元素归属_超列项目, 局_计次 - 1, 选择框列, 0, 16 )) 计次循环尾 ()列数 = 超列EX. 取列数量 ()行数 = 取数组成员数 (局_序号_数组 )单元数 = 行数 × 列数 重定义数组 (局_排序变量_数组, 假, 单元数 )重定义数组 (背景颜色, 假, 单元数 )重定义数组 (局_超列_项目_数组_W, 假, 单元数 )计次循环首 (单元数, 局_计次 )局_超列_项目_数组_W [局_计次 ] = 超列EX. 取项目文本_W (局_序号_数组 [取绝对值 (选择 (排序方式, -1, 行数 ) (局_计次 - 1 ) \ 列数 )], (局_计次 - 1 ) % 列数 )背景颜色 [局_计次 ] = 超列EX. 取字体色 (局_序号_数组 [取绝对值 (选择 (排序方式, -1, 行数 ) (局_计次 - 1 ) \ 列数 )], (局_计次 - 1 ) % 列数 )计次循环尾 ()计次循环首 (单元数, 局_计次 )超列EX. 置项目文本_W ( (局_计次 - 1 ) \ 列数, (局_计次 - 1 ) % 列数, 局_超列_项目_数组_W [局_计次 ])超列EX. 置字体色 ( (局_计次 - 1 ) \ 列数, (局_计次 - 1 ) % 列数, 背景颜色 [局_计次 ])超列EX. 置项目附加数值 ( (局_计次 - 1 ) \ 列数, 局_表项数值_数组 [取绝对值 (选择 (排序方式, -1, 行数 ) (局_计次 - 1 ) \ 列数 )])超列EX. 置项目尺寸 ( (局_计次 - 1 ) \ 列数, 项目尺寸 [取绝对值 (选择 (排序方式, -1, 行数 ) (局_计次 - 1 ) \ 列数 )])如果真 (选择框列 > -1 )组件置选择框元素数据 (组件句柄, #元素归属_超列项目, (局_计次 - 1 ) \ 列数, 选择框列, 0, 0, 1, 0, “”, 0, 选择框状态 [取绝对值 (选择 (排序方式, -1, 行数 ) (局_计次 - 1 ) \ 列数 )])计次循环尾 ()如果真 (选中项 ≠ 0 )计次循环首 (超列EX. 取项目数量 (), 局_计次 )如果真 (超列EX. 取项目附加数值 (局_计次 - 1 ) = 选中项 )超列EX.现行选中项 = 局_计次 - 1 超列EX. 保证显示 (局_计次 - 1, , )跳出循环 ()计次循环尾 ()返回 (取启动时间 () - 局_排序时间_数组)|
二分查找 | 整数型 | | |
数组 | 文本型 | | | | 待查 | 文本型 | | | | 类型 | 整数型 | | | | 区分大小写 | 逻辑型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | K | 整数型 | | | M | 整数型 | | | J | 整数型 | | | 数值A | 双精度小数型 | | | 数值B | 双精度小数型 | | | 文本 | 文本型 | | |
K = 1 M = 取数组成员数 (数组 )如果真 (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)
|