开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 280|回复: 9
收起左侧

[完成] 想实现遍历选择框

 关闭 [复制链接]
结帖率:99% (91/92)
发表于 2025-8-13 11:01:29 | 显示全部楼层 |阅读模式   广东省东莞市
40精币
QQ20250813-103042.png
想实现遍历选择框,同一行选择框只能选择一个,例如选择了上面的,变量1=Ctrl+Shift+Alt+Win ,如果只选择选择框1或者选择框2,变量1=Ctrl.请教大家这个应该怎么写?

最佳答案

查看完整内容

先标记组件: 然后使用一个线程来判断: [e=1].版本 2 .支持库 EThread .程序集 窗口程序集_启动窗口 .子程序 __启动窗口_创建完毕 启动线程 (&线程, , ) .子程序 线程 .局部变量 退出, 逻辑型 .局部变量 旧状态, 整数型 .局部变量 新状态, 整数型 .局部变量 数, 整数型 .局部变量 选择框, 选择框 .局部变量 文本, 文本型, , "8" .局部变量 结果, 文本型 文本 = { “左Ctrl”, “右Ctrl”, “左Shift”, “右Shift”, “左Al ...

结帖率:100% (1/1)
发表于 2025-8-13 11:01:30 | 显示全部楼层   浙江省温州市
先标记组件:
0.png
然后使用一个线程来判断:
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
启动线程 (&线程, , )
子程序名返回值类型公开备 注
线程  
变量名类 型静态数组备 注
退出逻辑型 
旧状态整数型 
新状态整数型 
整数型 
选择框选择框 
文本文本型8
结果文本型 
文本 = { “左Ctrl”, “右Ctrl”, “左Shift”, “右Shift”, “左Alt”, “右Alt”, “左Win”, “右Win” }
判断循环首 (退出 = )
新状态 = 0
计次循环首 (8, 数)
选择框 = 取标记组件 ()
如果真 (选择框.选中)
新状态 = 位或 (新状态, 左移 (1, 数))

计次循环尾 ()
数 = 1
计次循环首 (4, )
如果真 (位与 (旧状态, 左移 (1, 数)) ≠ 0 位与 (新状态, 左移 (1, 数 + 1)) ≠ 0)
选择框 = 取标记组件 ()
选择框.选中 = 假
新状态 = 位与 (新状态, 位取反 (左移 (1, 数)))
如果真 (位与 (新状态, 左移 (1, 数)) ≠ 0 位与 (旧状态, 左移 (1, 数 + 1)) ≠ 0)
选择框 = 取标记组件 (数 + 1)
选择框.选中 = 假
新状态 = 位与 (新状态, 位取反 (左移 (1, 数 + 1)))
数 = 数 + 2
计次循环尾 ()
如果真 (新状态 ≠ 旧状态)
结果 = “”
计次循环首 (8, 数)
如果真 (位与 (新状态, 左移 (1, 数)) ≠ 0)
结果 = 结果 + 文本 []“+”

计次循环尾 ()
编辑框1.内容 = 取文本左边 (结果, 取文本长度 (结果) - 1)
旧状态 = 新状态
延时 (100)
判断循环尾 ()


i支持库列表   支持库注释   
EThread多线程支持库
上面使用了位运算, 这是为了方便最后直接进行 新状态 ≠ 旧状态 的判断.
效果:
1.png 完整例子.zip (1.98 KB, 下载次数: 0)

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:96% (23/24)

签到天数: 3 天

发表于 2025-8-13 11:16:28 | 显示全部楼层   河南省新乡市
笨方法
例如Ctrl,选中时
变量1=变量1+“Ctrl+”
取消选中时
子文本替换(变量1,“Ctrl+”,“”)
回复

使用道具 举报

结帖率:0% (0/1)
发表于 2025-8-13 11:20:15 | 显示全部楼层   福建省福州市
同一行只能选一个,那不应该用单选框的?可以用图片框做底层

补充内容 (2025-8-13 11:20):
一行两个单选框一个父组件
回复

使用道具 举报

结帖率:0% (0/1)
发表于 2025-8-13 12:18:07 | 显示全部楼层   福建省福州市
你原来模式大概改成下图这样,自己完善一下,每个选择框被单击都调用一下
VX图片_2025-08-13_121353_717.png

评分

参与人数 1精币 +1 收起 理由
企鹅号525150138 + 1 优质内容,感谢分享!

查看全部评分

回复

使用道具 举报

结帖率:97% (581/599)

签到天数: 6 天

发表于 2025-8-13 12:33:34 | 显示全部楼层   河北省石家庄市
复制组件
回复

使用道具 举报

结帖率:43% (3/7)

签到天数: 12 天

发表于 2025-8-13 13:09:28 | 显示全部楼层   广东省潮州市
.版本 2

.子程序 读取图片参数, 文本型
.参数 组件的父窗口, 窗口, , 直接填写顶级窗口就行了,如:_启动窗口
.参数 组件前缀, 文本型, , 如:图片1_编辑框,图片2_编辑框,直接填写图片2即可取出内容,可搭配计次循环取出图片1和图片2的内容
.参数 筛查图片, 逻辑型, , 可以筛查是否为图片格式,真为检测是否为图片链接
.局部变量 局_寻找句柄, 整数型
.局部变量 局_组件, 编辑框
.局部变量 局_组件数量, 整数型
.局部变量 图片扩展名, 文本型, , "0"
.局部变量 循环变量, 整数型
.局部变量 内容, 文本型

局_寻找句柄 = 寻找组件 (组件的父窗口, 组件前缀, “编辑框”, , )
局_组件数量 = 取找到组件数目 (局_寻找句柄)
局_组件 = 取所找到组件 (局_寻找句柄, 0)
.如果真 (筛查图片 = 真)
    图片扩展名 = { “.jpg”, “.jpeg”, “.png”, “.bmp” }
    .计次循环首 (取数组成员数 (图片扩展名), 循环变量)
        .如果真 (文本_寻找文本 (局_组件.内容, 图片扩展名 [循环变量], , 真) ≠ -1)
            内容 = 局_组件.内容
            返回 (内容)
        .如果真结束

    .计次循环尾 ()
    返回 (“”)
.如果真结束
内容 = 局_组件.内容
返回 (内容)

’’’我之前有类似的要求,这个是我当时实现的子程序,不一定适合你,就是遍历一下组件,然后提取内容判断,程序可以输入窗口名和组件名指定判断,也可以在窗口组件取名的时候统一前缀如图片1_编辑框,图片2_编辑框,然后批量判断,使用起来很方便,也可以去组件数量然后循环判断,只要是统一前缀名称,即可随意添加或者删除组件也不需要修改程序
回复

使用道具 举报

结帖率:50% (1/2)

签到天数: 8 天

发表于 2025-8-13 14:48:29 | 显示全部楼层   河北省石家庄市
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
选择框总数整数型  
已勾选数量整数型  

子程序名返回值类型公开备 注
_按钮1_被单击  
.局部变量 i, 整数型
.局部变量 组件, 整数型
.局部变量 组件名称, 文本型
.局部变量 组件状态, 文本型

' 初始化计数
选择框总数 = 0
已勾选数量 = 0
编辑框1.内容 = “”  ' 清空显示

' 遍历窗口所有组件
计次循环首 (取组件数 (), i)
组件 = 取组件 (i - 1)  ' 组件索引从0开始

' 判断是否为选择框组件
如果真 (取组件类型 (组件)#选择框 )
选择框总数 = 选择框总数 + 1
组件名称 = 取组件标题 (组件)

' 获取选择框状态
如果 (选择框_取选中状态 (组件))
组件状态 = “已勾选”
已勾选数量 = 已勾选数量 + 1
组件状态 = “未勾选”

' 显示结果
编辑框1.内容 = 编辑框1.内容 + “选择框:” + 组件名称 + “ → ” + 组件状态 + #换行符

计次循环尾 ()

' 显示统计信息
编辑框1.内容 = 编辑框1.内容 + #换行符“总计:”到文本 (选择框总数)“个选择框,其中”到文本 (已勾选数量)“个已勾选”
子程序名返回值类型公开备 注
选择框_取选中状态逻辑型 获取选择框的选中状态
DLL命令名返回值类型公开备 注
(暂未填写DLL命令名)   
DLL库文件名:
(未填写库文件名)
在DLL库中对应命令名:
(未填写命令名)
参数名类 型传址数组备 注
选择框组件整数型选择框组件句柄
.局部变量 状态, 逻辑型

状态 = 发送消息 (选择框组件, 240, 0, 0)  ' 通过消息获取状态
返回 (状态)


i支持库列表   支持库注释   
spec特殊功能支持库

回复

使用道具 举报

结帖率:100% (14/14)

签到天数: 4 天

发表于 2025-8-13 17:09:43 | 显示全部楼层   江苏省苏州市
回复

使用道具 举报

结帖率:0% (0/1)
发表于 2025-8-13 17:48:16 | 显示全部楼层   福建省福州市
  
子程序名返回值类型公开备 注
选择框选中  
参数名类 型参考可空数组备 注
当前选择框选择框当前
另个选择框选择框
如果真 (当前选择框.选中 = )
另个选择框.选中 = 假

判断 (选择框1.选中 = 选择框2.选中 = )
编辑框1.内容 = “A”
编辑框1.内容 = “”

如果真 (选择框3.选中 = 选择框4.选中 = )
判断 (编辑框1.内容 ≠ “”)
编辑框1.内容 = 编辑框1.内容 + “ + ”“B”
编辑框1.内容 = “B”


如果真 (选择框5.选中 = 选择框6.选中 = )
判断 (编辑框1.内容 ≠ “”)
编辑框1.内容 = 编辑框1.内容 + “ + ”“C”
编辑框1.内容 = “B”


如果真 (选择框7.选中 = 选择框8.选中 = )
判断 (编辑框1.内容 ≠ “”)
编辑框1.内容 = 编辑框1.内容 + “ + ”“D”
编辑框1.内容 = “D”


子程序名返回值类型公开备 注
_选择框1_被单击  
选择框选中 (选择框1, 选择框2)
子程序名返回值类型公开备 注
_选择框2_被单击  
选择框选中 (选择框2, 选择框1)
子程序名返回值类型公开备 注
_选择框3_被单击  
选择框选中 (选择框3, 选择框4)
子程序名返回值类型公开备 注
_选择框4_被单击  
选择框选中 (选择框4, 选择框3)
子程序名返回值类型公开备 注
_选择框5_被单击  
选择框选中 (选择框5, 选择框6)
子程序名返回值类型公开备 注
_选择框6_被单击  
选择框选中 (选择框6, 选择框5)
子程序名返回值类型公开备 注
_选择框7_被单击  
选择框选中 (选择框7, 选择框8)
子程序名返回值类型公开备 注
_选择框8_被单击  
选择框选中 (选择框8, 选择框7)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表