找回密码
 加入
搜索
查看: 1436|回复: 8

[AU3基础] 进度条 闪烁问题求解(已解决)

[复制链接]
发表于 2021-11-13 22:25:15 | 显示全部楼层 |阅读模式
本帖最后由 itqijian 于 2021-11-16 07:45 编辑

原帖内容 :用 2 个 Label 创建反色文字进度条-『 UDF 函数 』-AUTOIT CN - Powered by Autoit中文论坛 (autoitx.com)
#include '_LabelProgress.au3'

$Form1 = GUICreate('反色文字Label进度条 @afan', 380, 80)
GUISetState()

$aProgress = _LabelProgress_Create(20, 20, 300, 30, '   1.正在解压文件')
$i = 1
Do
        Sleep(200)
        $i += Random(0, 2, 1)
        _LabelProgress_Set($Form1, $aProgress, $i)
Until $i >= 30
Sleep(2000)
$aProgress = _LabelProgress_Create(20, 20, 300, 30, '  2.开始安装...')
$i = 30
Do
        Sleep(200)
        $i += Random(0, 2, 1)
        _LabelProgress_Set($Form1, $aProgress, $i)
Until $i >= 80
Sleep(2000)
$aProgress = _LabelProgress_Create(20, 20, 300, 30, '  3.安装完成')
$i = 80
Do
        Sleep(200)
        $i += Random(0, 2, 1)
        _LabelProgress_Set($Form1, $aProgress, $i)
Until $i >= 101
_LabelProgress_Off($aProgress)
Exit

;在 '1.正在解压文件'完成到 '2.开始安装'切换的时候,百分比背景色进度条会从0%跳到30%,有一秒的闪烁。
;请问怎么能保持'1.正在解压文件'完成后,进度条百分比背景色的基础上30%起步而不闪烁?


发表于 2021-11-13 22:52:30 | 显示全部楼层
你这是创建了3次进度条,而不是在一个进度条上修改进度…
#include '_LabelProgress.au3'

$Form1 = GUICreate('反色文字Label进度条 @afan', 380, 80)
GUISetState()

$aProgress = _LabelProgress_Create(20, 20, 300, 30, '  1.正在解压...')
$i = 1
Do
        Sleep(200)
        $i += Random(0, 2, 1)
        _LabelProgress_Set($Form1, $aProgress, $i)
Until $i >= 30
Sleep(2000)
;~ $aProgress = _LabelProgress_Create(20, 20, 300, 30, '  2.开始安装...')
$i = 30
_LabelProgress_SetText($Form1, $aProgress, '  2.开始安装... ' & $i & '%')
Do
        Sleep(200)
        $i += Random(0, 2, 1)
        _LabelProgress_Set($Form1, $aProgress, $i)
Until $i >= 80
Sleep(2000)
;~ $aProgress = _LabelProgress_Create(20, 20, 300, 30, '  3.安装完成')
$i = 80
_LabelProgress_SetText($Form1, $aProgress, '  3.完成安装... ' & $i & '%')
Do
        Sleep(200)
        $i += Random(0, 2, 1)
        _LabelProgress_Set($Form1, $aProgress, $i)
Until $i >= 101
_LabelProgress_Off($aProgress)
Exit
 楼主| 发表于 2021-11-14 09:18:46 | 显示全部楼层
本帖最后由 itqijian 于 2021-11-14 09:24 编辑
afan 发表于 2021-11-13 22:52
你这是创建了3次进度条,而不是在一个进度条上修改进度…

谢谢 @Afan  解决了重0%起步闪烁问题

_LabelProgress_SetText($Form1,"",'  2.开始安装... ' & $i & '%')
新的问题:再新创建的进度条文字只显示第一次进度条文字,没有显示后面创建进度条文字。
是要修改_LabelProgress_SetText 这个自定义函数吗?

发表于 2021-11-14 10:13:00 | 显示全部楼层
你的提问帖仅自己可见有何意义
发表于 2021-11-14 10:32:35 | 显示全部楼层
即然是求解,有必要<此帖仅作者可见>吗?
发表于 2021-11-14 14:00:42 | 显示全部楼层
itqijian 发表于 2021-11-14 09:18
谢谢 @Afan  解决了重0%起步闪烁问题

_LabelProgress_SetText($Form1,"",'  2.开始安装... ' & $i & ...

建新进度条先 _LabelProgress_Off($aProgress) 删除旧的,不然就换地方创建。重叠到一起…… 不说自明
又或者,同一位置坐标,为何要新建?
 楼主| 发表于 2021-11-14 17:29:36 | 显示全部楼层
afan 发表于 2021-11-14 14:00
建新进度条先 _LabelProgress_Off($aProgress) 删除旧的,不然就换地方创建。重叠到一起…… 不说自明
...

按照给出的思路,测试后。这是回到原来的闪烁问题上了。 这是一个死循环无解?
发表于 2021-11-16 02:10:52 | 显示全部楼层
本帖最后由 yohoboy 于 2021-11-16 02:15 编辑
#include '_LabelProgress.au3'

$Form1 = GUICreate('反色文字Label進度條 @afan', 380, 80)
GUISetState()

$aProgress = _LabelProgress_Create(20, 20, 300, 30, '  1.正在解压...')
$i = 1
Do
        Sleep(100)
        $i += Random(0, 2, 1)
        _LabelProgress_Set($Form1, $aProgress, $i)
Until $i >= 29
;Sleep(2000)
_LabelProgress_Off($aProgress)

;$aProgress = _LabelProgress_CreateText(20, 20, 300, 30, '  2.开始安装...')
;Sleep(2000)

$i = 30
$aProgress2 = _LabelProgress_Create(20, 20, 300, 30, '  2.开始安装...' )
_LabelProgress_Set($Form1, $aProgress2, '' & $i & '')
Do
    Sleep(100)
    $i += Random(0, 2, 1)
    _LabelProgress_Set($Form1, $aProgress2, $i)
          ;语法:_LabelProgress_Set('窗口句柄或标题', 进度条数组, 进度值)
Until $i >= 79
;Sleep(2000)
 _LabelProgress_Off($aProgress)

$i = 80
$aProgress = _LabelProgress_Create(20, 20, 300, 30, '  3.完成安装,寫入參數中...')
_LabelProgress_Set($Form1, $aProgress, '' & $i & '')
Do
        Sleep(100)
        $i += Random(0, 2, 1)
        _LabelProgress_Set($Form1, $aProgress, $i)
Until $i >= 100
_LabelProgress_Off($aProgress)
Exit
 楼主| 发表于 2021-11-16 07:44:55 | 显示全部楼层
本帖最后由 itqijian 于 2021-11-16 07:46 编辑

谢谢帮忙,完美解决。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 22:35 , Processed in 0.078906 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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