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

超级列表框排序模块源码

.版本 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 = 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)

超级列表框排序例程

.版本 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”
  .如果结束
.如果真结束

运行结果:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • 易语言设置组合框内容自动排序的方法

    自动排序属性 数据类型:逻辑型: 语法: 对象.自动排序 = 逻辑型 设定对象的内容是否需要排序,默认为"假",即不自动排序. 例程: 说明: 设置组合框的自动排序属性. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • 易语言数组排序命令使用讲解

    数组排序命令 英文命令:SortAry 所属类别:数组操作 对指定数值数组变量内的所有数组成员进行快速排序,不影响数组的维定义信息,排序结果存放回该数组变量. 语法:  无返回值  数组排序(数值数组变量,[排序方向是否为从小到大]) 例程 说明: 把数组按成员的数值大小排序,如果第2个参数是"真",则按从小到大排序,否则反之.. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查

  • 易语言自编数组排序的方法

    易语言虽然数组自带排序命令,但是很多新手并不知道其中的原理.今天这篇介绍一下利用冒泡法进行数组排序. 冒泡排序,是一种计算机科学领域的较简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成. 第一步:运行易语言软件,创建一个易语言Windows桌面程序. 双击易语言图标,打开易语言程序,点击右上角程序→新建→Windows桌面程序→确认,或者直接点击新建图标→Windows桌面程

  • 实例讲解易语言数组排序

    易语言数组排序,就是将数组排序,这个针对的是数值型数组,我教大家操作. 1.打开易语言新建一个windows程序进入下图界面 2.我们点击进入代码编辑区 3.这个函数针对数组 所以要先定义一个数组 4.我们给数组赋值 我们输入 a[1]=1 a[2]=2 a[3]=3 5.然后输入数组排序这个函数 并展开发现有2个参数 6.参数简单 第一个我输入a. 第二个看你需要我们输入真,就是从小到大,否则就是从大到小 7.我们调试输出 a[1] 调试输出(a[1]) 结果为1 8.我们把 数组排序 (a,

  • 易语言冒泡排序知识点总结

    我们知道冒泡排序是编程语言经常使用的排序算法,在各种语言中使用都比较广泛,本源码演示仿照C语言中的写法在易语言中实现排序的方法. 新建易语言 创建指定控件 一个编辑框  一个标签 3. 代码: .版本 2 .子程序 __启动窗口_创建完毕 .局部变量 arr, 整数型, , "10" .局部变量 n, 整数型 .局部变量 i, 整数型 .局部变量 t, 整数型 ' //冒泡排序,从小到大 arr = { 89, 56, 34, 48, 57, 62, 74, 85, 93, 105 }

  • 易语言创建一组随机数并将其排序的代码

    创建随机数并将其排序的代码 .版本 2 .程序集 窗口程序集1 .子程序 _排序按钮_被单击 .局部变量 计次 .局部变量 寄存器, 整数型, , "20" .局部变量 N 置随机数种子 () .计次循环首 (取数组成员数 (寄存器), 计次) 寄存器 [计次] = 取随机数 (1, 100) .计次循环尾 () .计次循环首 (取数组成员数 (寄存器), 计次) .计次循环首 (取数组成员数 (寄存器) - 1, N) .判断开始 (寄存器 [N] > 寄存器 [计次]) .默

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

    超级列表框排序模块源码 .版本 2 .支持库 iext .程序集 程序集1 .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码 _临时子程序 () ' 在初始化代码执行完毕后调用测试代码 返回 (0) ' 可以根据您的需要返回任意数值 .子程序 _临时子程序 ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中. 注意不要修改本子程序的名称.参数及返回值类型. .子程序 超级列表框排序, 整数型

  • 易语言超级列表框双击修改内容示例

    DLL命令表 .版本 2 .DLL命令 取表项坐标信息, 整数型, "user32", "SendMessageA" .参数 hwnd, 整数型 .参数 wMsg, 整数型 .参数 wParam, 整数型 .参数 lParam, 坐标 .DLL命令 取表项结构信息, 整数型, "user32", "SendMessageA" .参数 hwnd, 整数型 .参数 wMsg, 整数型 .参数 wParam, 整数型 .参数 lPa

  • 易语言超级列表框导入TXT内容的方法

    易语言开发windows程序中,经常需要用到超级列表框处理一些数据. 那么除了在超级列表框开发中添加数据之外,我们还怎么从TXT中导入内容? 下面本教程手把手教您怎么操作. 1.打开"易语言" 2.在"易语言"菜单栏中,选择"程序"-"新建" 1.在弹出的"新建"对话框中,选择"windows窗口程序" 2.点击"确定" 1.在"易语言"程序的右边

  • 易语言超级列表框表项关键字搜索代码示例

    超级列表框表项关键字搜索示例 .版本 2 .支持库 iext .程序集 启动窗口程序集 .程序集变量 表项索引, 整数型 .子程序 _查找表项按钮_被单击 .局部变量 临时文本, 文本型 .局部变量 索引, 整数型 .局部变量 是否找到, 逻辑型 .局部变量 a, 整数型 .如果真 (输入框 ("请输入需要查找的内容", "查找表项", "易语言7", 临时文本, ) = 真) 是否找到 = 假 .计次循环首 (超级列表框.取表项数 (), a)

  • 易语言超级编辑框中寻找指定文本并选中的示例

    超级编辑框中寻找指定文本并选中 .版本 2 .支持库 iext2 .程序集 窗口程序集1 .子程序 __启动窗口_创建完毕 .子程序 取字符数, 整数型 .参数 文本, 文本型 .局部变量 长度, 整数型 .局部变量 个数, 整数型 .局部变量 字符位置, 整数型 长度 = 取文本长度 (文本) 个数 = 长度 字符位置 = 1 .判断循环首 (字符位置 < 长度) .如果 (取代码 (取文本中间 (文本, 字符位置, 1), ) < 0 或 取代码 (取文本中间 (文本, 字符位置, 1),

  • 易语言设置列表框是否允许选择多个选项的方法

    允许选择多项属性 数据类型:逻辑型: 语法:  对象.允许多项选择 =  逻辑型 本属性指定是否允许用户同时选择对象中的多个选项. 例程: 说明: 设置列表框多项选择的权限. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • 易语言改变列表框的排列方式

    多列属性 数据类型:逻辑型: 语法:  对象.多列 =  逻辑型 设定对象内容的排列方式. 例程: 说明: 改变列表框的排列方式. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • 易语言超级按钮使用技巧

    超级按钮币按钮多了一些属性参数和功能你单一的按钮组建实现的功能更多 更实用 下面我就介绍下怎么使用超级按钮 1.首先我介绍下超级按钮的按钮风格有什么用和效果  超级按钮1.按钮风格 = 0 如下图1 超级按钮1.按钮风格 = 1 如下图2 超级按钮1.按钮风格 = 2 如下图3 2.接着我介绍下 超级按钮的置外形图片怎么用 在资源区域添加一个图片 在源码区输入源码 F5运行 如下图3效果 由于我的图片是方框所以窗口就成了图片的外形 3.下面继续在讲解一下超级按钮的通常图片属性 选中并点击启动窗口

  • 易语言编写网页刷点击程序

    用易语言中文程序,做一个简单的网页刷新器,用到时钟组件就可以完成. 1.在百度上下载易语言软件进行安装,通过百度"易语言",得出搜索结果,按照步骤进行正常的软件安装即可. 2.安装完毕之后,打开易语言程序,选择windows窗口程序进行启动 3.在拓展组件中找到超文本浏览框,移动到我们窗口程序中,在地址一栏中填写我们要刷新的网址. 4.添加一个时钟组件,时钟组件属性中的时间周期即是我们要刷新的频率,单位是ms,例如我们设置2000,就是2s刷新一次. 5.双击时钟,跳转到时钟子事件程序

  • 易语言气球提示框组件使用详解

    气球提示框组件,想必很多新手朋友还不是很理解.也许你曾经见过它,也许你知道它却从未"打过招呼",也许就没有也许了! 1.首先,运行易语言,然后选择"Windows窗口程序"并点击"确定"按钮,进入"Windows窗口程序"设计界面.如图: 2.在窗口上绘制气球提示框组件,按钮组件各一个,调整相关组件的大小和位置.如图: 3.修改相关组件的属性且规范命名各个组件的名称,给你的组件取一个朗朗上口名字吧! 4.编写程序代码,用代码赋

随机推荐