[AHK]Listbox with incremental search

news2024/9/20 16:44:10

可以根据文本框中的输入内容,实时动态从列表中搜索并定位所搜索内容。

AHK V1代码


#Requires AutoHotkey v1.0
Gui Add, Edit, w300 h20 vsearchedString gIncrementalSearch
Gui Add, ListBox, vchoice gListBoxClick w300 h250 hscroll vscroll
Gui Add, Button, gListBoxClick Default, OK
Gosub FillListBox
Gui Show
Return

IncrementalSearch:
	Gui Submit, NoHide
	len := StrLen(searchedString)
	itemNb := 1
	Loop Parse, listContent, |
	{
		StringLeft part, A_LoopField, len
;~ 		Tooltip %part% (%A_LoopField%)
;~ 		Sleep 500
		If (part = searchedString)
		{
			itemNb := A_Index
			Break
		}
	}

	Tooltip %searchedString% (%itemNb%)
	SetTimer HideTooltip, 1000
	GuiControl Choose, choice, %itemNb%
Return

HideTooltip:
	SetTimer HideTooltip, Off
	Tooltip
Return

ListBoxClick:
	Gui Submit, NoHide
	MsgBox Choice: %choice%
Return

GuiClose:
GuiEscape:
ExitApp

FillListBox:
	listContent =
( Join|
car|bicyle|train|plane|road|railway station|track|airport|control tower|wheel
red|green|pink|blue|grey|silver|black|yellow|brown|white
hair|nose|eye|ear|face|mustache|neck|collar|arm|hand|forearm|forehead
finger|thumb|palm|back|stomach|leg|thigh|foot|toe
shoe|sock|stocking|trousers|jumpsuit|skirt|blouse|dress|shirt|tie|necklace|earring
Sun|Moon|Mercure|Venus|Earth|Mars|Jupiter|Saturn|Neptun|Pluto
Africa|America|Antarctica|Asia|Australia|Europe
Canada|USA|Mexico|Guatemala|Honduras|Cuba
Gui Add|Gui Show|Gui Submit|Gui Hide|Gui Destroy
)
	GuiControl, , choice, %listContent%
Return

AHK V2代码

#Requires AutoHotkey v2.0

; 创建GUI
MyGui := Gui()
MyGui.Add("Edit", "w300 h20 vsearchedString", "").OnEvent("Change", IncrementalSearch)
MyGui.Add("ListBox", "vchoice w300 h250 hscroll vscroll", []).OnEvent("DoubleClick", ListBoxClick)
MyGui.Add("Button", "Default", "OK").OnEvent("Click", ListBoxClick)

FillListBox()
MyGui.Show()


IncrementalSearch(*)
{
    searchedString := MyGui["searchedString"].Value
    len := StrLen(searchedString)
    itemNb := 1
    
    Loop Parse, listContent, "|"
    {
        if (SubStr(A_LoopField, 1, len) = searchedString)
        {
            itemNb := A_Index
            Break
        }
    }

    ToolTip(searchedString " (" itemNb ")")
    SetTimer () => ToolTip(), -1000
    MyGui["choice"].Choose(itemNb)
}

ListBoxClick(*)
{
    choice := MyGui["choice"].Text
    MsgBox("Choice: " choice)
}

FillListBox()
{
    global listContent := "car|bicyle|train|plane|road|railway station|track|airport|control tower|wheel|" 
        . "red|green|pink|blue|grey|silver|black|yellow|brown|white|"
        ; ... 其余列表内容 ...
        . "Gui Add|Gui Show|Gui Submit|Gui Hide|Gui Destroy"
    
    MyGui["choice"].Add(StrSplit(listContent, "|"))
}

; 设置关闭事件
MyGui.OnEvent("Close", (*) => ExitApp())
MyGui.OnEvent("Escape", (*) => ExitApp())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2125599.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Excel怎么截图?快速捕捉工作表的多种方法

大家好,这里是效率办公指南! 📸 在日常工作中,我们经常需要对Excel工作表进行截图,无论是为了记录数据、制作演示还是进行数据对比。今天,我们就来学习几种在Excel中截图的方法以及它们的快捷键。 一、使…

迈向智能制造:数字化转型的核心策略与实践

在全球经济不断变革的背景下,制造业正迎来一场深刻的数字化变革。随着技术的快速进步,特别是工业4.0概念的普及,制造企业正在向智能制造方向转型。 智能制造是通过数字化技术的集成和应用,全面提升制造过程的自动化、信息化和智能…

Java项目: 基于SpringBoot+mybatis+maven新闻推荐系统(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven新闻推荐系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、…

信息安全数学基础(6)整除的进一步性质

1. 传递性 如果 a 能被 b 整除,且 b 能被 c 整除(记作 a∣b 和 b∣c),则 a 能被 c 整除(记作 a∣c)。 2. 线性组合 如果 a∣b 且 a∣c,则对于任意整数 x 和 y,都有 a∣(bxcy)。这个性…

Vue2踩坑记录 - el-input无法接收键盘输入,对响应式对象的深入理解-对象和数组的响应式

今天发现,某对话框打开后,其中的input无法接收键盘输入,我在页面上劈里啪啦敲了一堆,页面输入框空空如也,的确是用了v-model来实现双向绑定。但是显然,它没有实现双向数据传输。那么,双向数据传…

JMeter在Mac下的安装使用

目录 Mac OS Jmeter安装运行1、Jmeter下载2、运行Jmeter3、编写或导入脚本 前言 开发过程中需要对系统进行性能测试,可以选用jemter对接口进行压测,jemter优点如下: 开源许可证:Jmeter完全免费,允许开发者使用源代码…

SM7015非隔离电磁炉/电饭煲电源芯片12V/18V输出

SM7015特点: 拓扑结构支持:低成本 BUCK、BUCK-BOOST 等方案 采用 730V 单芯片集成工艺 85Vac~265Vac 宽电压输入 待机功耗小于 120mW220Vac 集成高压启动电路 集成高压功率开关 60KHz 固定开关频率 内置抖频技术,提升 EMC 性能 电流模式 PWM…

使用designer.exe实现设计ui界面(以及解决遇到的问题)

引言: 若自己构想一个简洁的页面,有个布局的草图,且使用python实现,似乎是可行的,但是若对于比较复杂的界面,且不说每个模块在布局中所在的位置,再说每个模块所对应的功能以及程序的实现,都会是十分繁杂的任务。所以此时就需要寻找更加直观的设计方法。 其实python中的…

指针之旅(5)—— 万能指针与回调函数的搭配:万能排序qsort函数的使用规则及其模拟实现。

目录 1. 回顾:万能指针void* 与 回调函数 的特性 1.1 万能指针void* 1.2 回调函数 2. qsort函数的使用规则 2.1 qsort的头文件和排序方向 2.2 qsort的函数参数表解析 2.3 结构体数组排序举例 3. 冒泡排序模拟万能排序qsort的实现 3.1 冒泡排序的回顾与疑问…

前端自定义下载文件名

data数据格式如下 "data": [{"createBy": "system","createTime": "2024-09-11 14:08:56","updateBy": "","updateTime": null,"beginTime": null,"endTime": null,&qu…

18068 选择排序

### 思路 1. **初始化**:定义变量i, j, k和临时变量tmp。 2. **外层循环**:遍历数组的每个元素,i从0到n-2。 3. **内层循环**:从i1到n-1,找到最小元素的索引k。 4. **交换**:将最小元素与当前元素交换。 #…

源码安装python3.10.8后pip3无法使用问题

一、背景: CentOS7.7上默认已经存在python2.7,但需要python3,所以计划源码安装python3。 下载python3.10.8 wget https://www.python.org/ftp/python/3.10.8/Python-3.10.8.tgz 二、编译安装 安装用户为普通linux用户,拥有sudo权…

实战案例(2)防火墙+二交换机VLAN组网

案例二:防火墙充当三层交换机与路由器角色功能进行组网 拿到这样的拓扑后,首先要了解好客户的需求,然后根据需求进行划分 比如客户那边有监控跟办公网络,可以通过VLAN划分不同的区域,然后二层交换机对接终端的口划入到…

C++中的I/O流

本节主要看代码理解 I/O流继承关系 iostream 主要类 cin cout cerr clog while(cin>>str) { //处理 } 当接收ctrl z 或 ctrl c时,会停止, 原理:重载操作符bool,令指定istr…

python学习——对无人机影像有RGB转换到HSV

问题描述 最近需要对无人机影像中绿色植被信息进行提取,查看相关论文,发现用的比较多的就是HSV色彩转换方法,动手实践一下。 解决思路 #mermaid-svg-5ejGodIusPv6zFVS {font-family:"trebuchet ms",verdana,arial,sans-serif;fon…

移植案例与原理 - startup子系统之syspara_lite系统属性部件

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 startup子系统之syspara_lite系统属性部件 (1) startup子系统之syspara_lite系统属性部件 (2) startup子系…

【C++ Primer Plus习题】14.5

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> using namespace std; #includ…

Xinstall地推解决方案:精准追踪,提升App推广效果!

在移动互联网时代&#xff0c;App的推广和运营成为了开发者们面临的一大挑战。尤其是地推活动&#xff0c;作为App推广的重要手段&#xff0c;其效果直接关系到产品的用户增长和活跃度。然而&#xff0c;传统的地推方式存在着诸多痛点&#xff0c;如业绩统计繁琐、推广效果难以…

Excel怎么去除公式保留数字,一个快捷键也能搞定

大家好&#xff0c;这里是效率办公指南&#xff01; &#x1f4ca;在处理Excel数据时&#xff0c;我们经常会遇到需要从公式单元格中提取数值的情况。例如&#xff0c;你可能有一个包含公式的列&#xff0c;但只需要那些公式计算后的数字。今天&#xff0c;我们就来学习几种在…

无线领夹麦克风哪款好,无线麦克风品牌排行榜前十名,智商税详谈

​无线领夹麦克风如今是视频创作者、直播博主等群体常用的音频设备&#xff0c;但由于品牌和型号众多&#xff0c;消费者在购买时常常不知如何选择。从市场情况来看&#xff0c;某些品牌在销量上占据优势&#xff0c;但在口碑方面&#xff0c;一些专注品质的小众品牌可能更胜一…