博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AHK Listview排序函数
阅读量:5143 次
发布时间:2019-06-13

本文共 1971 字,大约阅读时间需要 6 分钟。

该函数来自AHK 官方论坛,

函数比较短小强悍,支持多行同时移动。函数关键点都有注释,虽然是洋文,但勉强应该看得懂

PS:我自己也写过类似函数,但貌似这个函数更简洁优美,记录下来,随时翻阅。

1 Gui, Add, Listview, w260 h200 vmylistview, test|test2|test3|test4 2 LV_Modifycol(1, 60) 3 LV_Modifycol(2, 60) 4 LV_Modifycol(3, 60) 5 LV_Modifycol(4, 60) 6  7 Loop, 10 8     LV_Add("", A_Index, "-" A_Index, (10 - A_Index), "x" A_Index) 9    10 Gui, Show, Center AutoSize, TestGUI11 Return12 13 GuiClose:14 GuiEscape:15 ExitApp16 17 PgUp::LV_MoveRow()18 PgDn::LV_MoveRow(false)19 20 LV_MoveRow(moveup = true) {21     ; Original by diebagger (Guest) from:22     ; http://de.autohotkey.com/forum/viewtopic.php?p=58526#5852623     ; Slightly Modifyed by Obi-Wahn24     If moveup not in 1,025         Return   ; If direction not up or down (true or false)26     while x := LV_GetNext(x)   ; Get selected lines27         i := A_Index, i%i% := x28     If (!i) || ((i1 < 2) && moveup) || ((i%i% = LV_GetCount()) && !moveup)29         Return   ; Break Function if: nothing selected, (first selected < 2 AND moveup = true) [header bug]30                 ; OR (last selected = LV_GetCount() AND moveup = false) [delete bug]31     cc := LV_GetCount("Col"), fr := LV_GetNext(0, "Focused"), d := moveup ? -1 : 132     ; Count Columns, Query Line Number of next selected, set direction math.33     Loop, %i% {   ; Loop selected lines34         r := moveup ? A_Index : i - A_Index + 1, ro := i%r%, rn := ro + d35         ; Calculate row up or down, ro (current row), rn (target row)36         Loop, %cc% {   ; Loop through header count37             LV_GetText(to, ro, A_Index), LV_GetText(tn, rn, A_Index)38             ; Query Text from Current and Targetrow39             LV_Modify(rn, "Col" A_Index, to), LV_Modify(ro, "Col" A_Index, tn)40             ; Modify Rows (switch text)41         }42         LV_Modify(ro, "-select -focus"), LV_Modify(rn, "select vis")43         If (ro = fr)44             LV_Modify(rn, "Focus")45     }46 }

 

 

转载于:https://www.cnblogs.com/easysky/p/3716445.html

你可能感兴趣的文章
作业1:求500到1000之间有多少个素数,并打印出来
查看>>
for循环:用turtle画一颗五角星
查看>>
浅谈JavaScript中的eval()
查看>>
操作系统学习(七) 、保护机制概述
查看>>
Android中的自定义控件(一)
查看>>
矩阵快速幂---BestCoder Round#8 1002
查看>>
【知识整理】这可能是最好的RxJava 2.x 入门教程(一)
查看>>
为什么要重写hashcode方法和equals方法
查看>>
【Mysql】索引简介
查看>>
[luogu1073 Noip2009] 最优贸易 (dp || SPFA+分层图)
查看>>
IT的灵魂是流程,流程的灵魂是业务,业务的灵魂是战略
查看>>
SQL语句执行与结果集的获取
查看>>
bzoj 3994: [SDOI2015]约数个数和
查看>>
反向树状数组
查看>>
android动画(一)Interpolator
查看>>
关于微软自带的身份和角色验证
查看>>
【产品测评】Android应用商店分析报告——百度应用
查看>>
【Android】Android取消EditText自动获取焦点
查看>>
匈牙利算法---解决最大匹配问题
查看>>
浅拷贝和深拷贝(java)
查看>>