开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 4060|回复: 17
收起左侧

[2021开源大赛(第六届)] (bug更正)文件枚举并生成按钮v1.0,全官方库纯源码

[复制链接]
结帖率:100% (1/1)
发表于 2021-12-7 15:02:29 | 显示全部楼层 |阅读模式   湖北省武汉市
承接第一帖↓↓
https://bbs.125.la/forum.php?mod=viewthread&tid=14709207&extra=


由于本人的疏忽,第一版源码有很严重的算法错误。
本帖为纠错帖,顺便向各位学友诚恳致歉:
                       “我错了!”

顺便附上修正后的源码(以下自取↓↓)

部分代码如下↓
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口  by 月下美孤.FrodeHu@163.com
变量名类 型数组备 注
_枚举类_枚举类模块方法:_枚举
_item按钮12常量,易语言常量不支持数组就放这儿了

子程序名返回值类型公开备 注
__启动窗口_创建完毕 置子夹内按钮常量数组_item
_item [1] = 按钮1
_item [2] = 按钮2
_item [3] = 按钮3
_item [4] = 按钮4
_item [5] = 按钮5
_item [6] = 按钮6
_item [7] = 按钮7
_item [8] = 按钮8
_item [9] = 按钮9
_item [10] = 按钮10
_item [11] = 按钮11
_item [12] = 按钮12
' 窗口置顶
_启动窗口.总在最前 = 真
_启动窗口.总在最前 = 假
XP风格 (3)
子程序名返回值类型公开备 注
_时钟1_周期事件 监控目录文件数量,有变动的情况下会刷新变量 找到的文件列表、_文件数量  的值
变量名类 型静态数组备 注
临时_文件数量整数型 
文件列表_目录文本型0
i整数型 
' 调用方法枚举目录下文件数量、文件名列表
临时_文件数量 = _枚举.枚举_目录下文件数量 (编辑框1.内容)
如果真 (_文件数量 ≠ 临时_文件数量)  ' 目录下文件数量变动
_文件数量 = 临时_文件数量  ' 全局变量 _文件数量
_枚举.枚举_文件名 (编辑框1.内容, 文件列表_目录)  ' 调用方法枚举目录下文件名数组''易语言
复制数组 (找到的文件列表, 文件列表_目录)  ' 将枚举到的数组传给全局变量数组 找到的文件列表
调试输出 (“————监视目录下有:【”到文本 (_文件数量)“】个文件!文件名数组为↓:”)
调试输出 (找到的文件列表)
调试输出 (“——————————————————————————————————————————————”)
新建按钮_参数获取_配置组件 ()
标签_文件数量.标题 = 到文本 (_文件数量)
子程序名返回值类型公开备 注
新建按钮_参数获取_配置组件 获取选择夹末页按钮个数和选择夹样式
变量名类 型静态数组备 注
_按钮个数1整数型 
需要增加的子夹数量双精度小数型 
i整数型 
' 判断需要增加的选择夹数量
' 我画的按钮一个选择夹子夹只能放下12个
' 默认已经有一个子夹了,实际子夹数量会多一个,所以对 需要增加的选择夹数量 直接取整就完了
需要增加的子夹数量 = 取整 (_文件数量 ÷ 12)
调试输出 (“————需要增加【”到文本 (需要增加的子夹数量)“】个子夹!————”)
' 我们拿到了想要的参数,接着就根据参数选择夹样式进行修改
计次循环首 (需要增加的子夹数量, i)
高级选择夹1.加入子夹 (“page”到文本 (i + 1), , , , )  ' 选择夹调整
计次循环尾 ()
_高级选择夹1_子夹头被单击 (0)  ' 执行一次获取按钮
子程序名返回值类型公开备 注
_高级选择夹1_子夹头被单击 根据索引展示按钮
参数名类 型参考可空数组备 注
子夹索引整数型
变量名类 型静态数组备 注
i整数型 
当前页按钮数量整数型 
按钮对应的文件名位置整数型0
' 先算出用户点击的子夹应该展示多少个按钮
判断 (_文件数量 > 12)  ' 选择夹不止一页
判断 (子夹索引 = 高级选择夹1.取子夹数目 () - 1)  ' 子夹索引为最后一页
当前页按钮数量 = 取整 (_文件数量 ÷ 12) × 12
当前页按钮数量 = _文件数量 - 当前页按钮数量

当前页按钮数量 = 12

当前页按钮数量 = _文件数量  ' 选择夹只有一页
调试输出 (“————当前页有【”到文本 (当前页按钮数量)“】个按钮”)
' 再算出当前页按钮对应的按钮信息————按钮标题、按钮子程序
' 第一个按钮对应的文件名位置 =子夹索引 × 12 + 1‘可以自己尝试找规律
计次循环首 (当前页按钮数量, i)
加入成员 (按钮对应的文件名位置, 子夹索引 × 12 + i)
调试输出 (“————按钮[”到文本 (i)“]对应的文件名位置:”到文本 (按钮对应的文件名位置 [i])“————”)
计次循环尾 ()
' 根据得到的参数来展示当页的按钮状态
计次循环首 (当前页按钮数量, i)
_item [i].标题 = 找到的文件列表 [按钮对应的文件名位置 [i]]
_item [i].禁止 = 假
_item [i].可视 = 真
计次循环尾 ()
如果真 (12 - 当前页按钮数量 ≠ 0)
计次循环首 (12 - 当前页按钮数量, i)
_item [当前页按钮数量 + i].禁止 = 真
_item [当前页按钮数量 + i].可视 = 假
计次循环尾 ()

' —————————————按钮事件———————————————————
' 子夹内每个按钮的功能都差不多,都是打开标题对应的文件
' 那么我们可以尽量简化代码
' 全局变量 子夹_当前点击的按钮 对应的数据是按钮类型,我只要修改这个变量,就可以读取到想要的按钮标题
子程序名返回值类型公开备 注
_按钮1_被单击  
子夹_当前点击的按钮 = 按钮1
子夹内_按钮被单击 ()
子程序名返回值类型公开备 注
_按钮2_被单击  
子夹_当前点击的按钮 = 按钮2
子夹内_按钮被单击 ()
子程序名返回值类型公开备 注
_按钮3_被单击  
子夹_当前点击的按钮 = 按钮3
子夹内_按钮被单击 ()
子程序名返回值类型公开备 注
_按钮4_被单击  
子夹_当前点击的按钮 = 按钮4
子夹内_按钮被单击 ()
子程序名返回值类型公开备 注
_按钮5_被单击  
子夹_当前点击的按钮 = 按钮5
子夹内_按钮被单击 ()
子程序名返回值类型公开备 注
_按钮6_被单击  
子夹_当前点击的按钮 = 按钮6
子夹内_按钮被单击 ()
子程序名返回值类型公开备 注
_按钮7_被单击  
子夹_当前点击的按钮 = 按钮7
子夹内_按钮被单击 ()
子程序名返回值类型公开备 注
_按钮8_被单击  
子夹_当前点击的按钮 = 按钮8
子夹内_按钮被单击 ()
子程序名返回值类型公开备 注
_按钮9_被单击  
子夹_当前点击的按钮 = 按钮9
子夹内_按钮被单击 ()
子程序名返回值类型公开备 注
_按钮10_被单击  
子夹_当前点击的按钮 = 按钮10
子夹内_按钮被单击 ()
子程序名返回值类型公开备 注
_按钮11_被单击  
子夹_当前点击的按钮 = 按钮11
子夹内_按钮被单击 ()
子程序名返回值类型公开备 注
_按钮12_被单击  
子夹_当前点击的按钮 = 按钮12
子夹内_按钮被单击 ()
子程序名返回值类型公开备 注
子夹内_按钮被单击 子夹内按钮被单击
变量名类 型静态数组备 注
_打开文件的路径文本型 
_打开文件的路径 = 编辑框1.内容 + “\” + 子夹_当前点击的按钮.标题
执行 (4, _打开文件的路径, , , )
' ————————————其它按钮——————————————————
子程序名返回值类型公开备 注
_按钮_打开目录_被单击  
执行 (4, 编辑框1.内容, , , )
子程序名返回值类型公开备 注
_按钮_选择目录_被单击 只能是目录哦
变量名类 型静态数组备 注
i整数型 
如果真 (编辑框1.内容 ≠ “”)  ' 编辑框有内容,说明时钟任务正在执行
编辑框1.内容 = “”
时钟1.时钟周期 = 0  ' 先停掉
' 将可能产生影响的变量给清零
删除成员 (找到的文件列表, 1, 取数组成员数 (找到的文件列表))
_文件数量 = 0
' 将子夹、按钮状态还原
变量循环首 (高级选择夹1.取子夹数目 () - 1, 1, -1, i)
高级选择夹1.删除子夹 (i)
变量循环尾 ()
计次循环首 (12, i)
_item [i].标题 = “按钮”  ' 这个其实可以不改
_item [i].禁止 = 真
_item [i].可视 = 假
计次循环尾 ()
编辑框1.内容 = 浏览文件夹 (“by_月下美孤_FrodeHu@163.com, )
如果真 (编辑框1.内容 ≠ “”)
时钟1.时钟周期 = 到整数 (编辑框_刷新频率.内容)

' 写配置项 (取运行目录 () + “\临时数据.ini”, “临时数据”, “用户选择的目录”, 编辑框1.内容)
' 写配置项 (取运行目录 () + “\临时数据.ini”, “临时数据”, “用户定义的时间:”, 编辑框_刷新频率.内容)
' 重启自身 ()
子程序名返回值类型公开备 注
_编辑框_刷新频率_按下某键逻辑型 by_月下美孤_FrodeHu@163.com
参数名类 型参考可空数组备 注
键代码整数型
功能键状态整数型
判断 (键代码 = #回车键 )
判断 (编辑框_刷新频率.内容 ≠ “” 到整数 (编辑框_刷新频率.内容) ≥ 1000)
时钟1.时钟周期 = 到整数 (编辑框_刷新频率.内容)
编辑框_刷新频率.字体.加粗 = 真

信息框 (“刷新频率不能为空或频率过高!”, 16, “by_月下美孤_FrodeHu@163.com, )





i支持库列表   支持库注释   
xplibXP风格界面库
spec特殊功能支持库
iext3扩展界面支持库三
shell操作系统界面功能支持库

文件枚举并生成按钮v2.0.e

21.04 KB, 下载次数: 43, 下载积分: 精币 -2 枚

bug修正

111.png
111.png

评分

参与人数 5好评 +5 精币 +11 收起 理由
易语言资源网 + 1 + 5 支持开源~!感谢分享
wscpf1919 + 1 小学生作品,值得鼓励
金胖子 + 1 + 2 支持开源~!感谢分享
小翁哥哥 + 1 + 2 支持开源~!感谢分享
冰点 + 1 + 2 奉上小小红包希望笑纳

查看全部评分

签到天数: 7 天

发表于 2022-1-14 10:07:01 | 显示全部楼层   河南省许昌市
支持开源~谢谢分享
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2022-1-12 10:04:10 | 显示全部楼层   江苏省苏州市
谢谢!!!!!!!!!
回复 支持 反对

使用道具 举报

结帖率:100% (6/6)

签到天数: 22 天

发表于 2022-1-8 09:44:53 | 显示全部楼层   新疆维吾尔自治区昌吉回族自治州
感谢楼主分享
回复 支持 反对

使用道具 举报

结帖率:81% (13/16)

签到天数: 10 天

发表于 2022-1-4 20:06:58 | 显示全部楼层   浙江省嘉兴市
感谢楼主分享,支持一下~~!!!
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 7 天

发表于 2021-12-19 14:14:43 | 显示全部楼层   天津市天津市
制作游戏菜单
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2021-12-17 20:08:11 | 显示全部楼层   浙江省温州市
可以用来制作启动菜单
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 13 天

发表于 2021-12-13 00:26:03 高大上手机用户 | 显示全部楼层   云南省昆明市
可以借鉴用来制作游戏菜单
回复 支持 反对

使用道具 举报

结帖率:83% (10/12)
发表于 2021-12-7 22:27:12 | 显示全部楼层   山东省枣庄市
拿来吧你!
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
 楼主| 发表于 2021-12-7 21:35:36 | 显示全部楼层   湖北省黄石市
qq2518 发表于 2021-12-7 17:35
更新了吗。感谢分享

嗯,第一版算法有问题,会出现按钮标题相同的bug
还有取消了重启自身(),简化代码逻辑
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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