[已解决]计次循环首添加标签百分比不显示效果问题求大神解答
本帖最后由 ps1989 于 2020-5-4 23:07 编辑.版本 2
.支持库 commobj
.程序集 窗口程序集_启动窗口
.程序集变量 已生成组合数, 整数型
.程序集变量 需生成组合数, 整数型
.子程序 __启动窗口_创建完毕
.子程序 两字分割组合
.参数 数组参数1, 文本型, , 第1个待分割的数组,这里可以代表某个编辑框,如编辑框1的内容为"ABC"则被分割为"a""b""c"
.参数 数组参数2, 文本型, , 第2个待分割的数组,这里可以代表某个编辑框,如编辑框1的内容为"ABC"则被分割为"a""b""c"
.局部变量 文本, 快速文本对象
.局部变量 文本数组1, 文本型, , "0"
.局部变量 文本数组2, 文本型, , "0"
.局部变量 a, 整数型
.局部变量 b, 整数型
文本数组1 = 分割文本 (数组参数1, #换行符, )
文本数组2 = 分割文本 (数组参数2, #换行符, )
需生成组合数 = 取数组成员数 (文本数组1) × 取数组成员数 (文本数组2)
已生成组合数 = 0
载入 (进度窗口, _启动窗口, 假)
进度窗口.进度条1.最大位置 = 需生成组合数
.计次循环首 (取数组成员数 (文本数组1), a)
' 输出调试文本 (“A组当前循环次数” + “+” + 到文本 (a))
.计次循环首 (取数组成员数 (文本数组2), b)
已生成组合数 = 已生成组合数 + 1
进度窗口.进度条1.位置 = 已生成组合数
进度窗口.标题 = “当前生成进度” + “(” + 到文本 (已生成组合数) + “/” + 到文本 (需生成组合数) + “)”
进度窗口.标签1.标题 = 到文本 (已生成组合数 ÷ 需生成组合数 × 100) + “%”
文本.添加 (文本数组1 + 文本数组2 + #换行符)
输出调试文本 (“B组当前循环次数” + “+” + 到文本 (已生成组合数))
.计次循环尾 ()
.计次循环尾 ()
编辑框7.加入文本 (文本.取文本 (1, ))
信息框 (“共生成” + 到文本 (取数组成员数 (文本数组1) × 取数组成员数 (文本数组2)) + “个组合”, 0, , )
就是这条:
进度窗口.标签1.标题 = 到文本 (已生成组合数 ÷ 需生成组合数 × 100) + “%”
我把这条放在 进度窗口.标题上可以正常运行,放在标签上却只能是最后的100%时候能显示,好迷茫啊~~还有能不能不显示小数点后面的数值?
解决办法:
在最后的循环内加入命令:处理事件() 让软件暂时转让控制权,以便让 Windows 操作系统有机会处理其它的如用户键盘或鼠标输入等事件。直到操作系统处理并发送完程序队列中的所有事件后,命令才会返回。在这里的应用类似于时钟的刷新.
也可以直接用透明标签来替代普通标签,即可解决问题.
对比了下,使用命令"处理事件()"比使用透明标签更节省CPU的占用率 四舍五入()
参数名称为“被舍入的位置”,数据类型为“整数型(int)”,所处语句为“四舍五入”。注明:如果大于0,表示小数点右边应保留的位数;如果等于0,表示舍入到整数;如果小于0,表示小数点左边舍入到的位置。例如:四舍五入 (1056.65, 1) 返回 1056.7; 四舍五入 (1056.65, 0) 返回 1057; 四舍五入 (1056.65, -1) 返回 1060。如果省略本参数,则默认为0。 标签好像有一个刷新显示的吧 Aurelion 发表于 2020-5-2 22:33
四舍五入()
参数名称为“被舍入的位置”,数据类型为“整数型(int)”,所处语句为“四舍五入”。 ...
感谢大佬!!那标签不刷新能解决吗?用的不是时钟,是计次循环首 hackerxj 发表于 2020-5-2 22:36
标签好像有一个刷新显示的吧
语句是什么?能告知吗 ps1989 发表于 2020-5-2 22:51
感谢大佬!!那标签不刷新能解决吗?用的不是时钟,是计次循环首
你把源码传网盘我帮你改改 Aurelion 发表于 2020-5-2 23:02
你把源码传网盘我帮你改改
https://ps1989.lanzouj.com/ic712eb Aurelion 发表于 2020-5-2 23:02
你把源码传网盘我帮你改改
其实用透明标签就可以解决,我只是因为在学习,不明白为什么用标签不能显示,而用透明标签就可以正常显示百分比 ps1989 发表于 2020-5-2 23:13
其实用透明标签就可以解决,我只是因为在学习,不明白为什么用标签不能显示,而用透明标签就可以正常显示百 ...
在底下加一个处理事件 你这个循环中循环 非常的卡 标签应该是假死了
页:
[1]
2