进度条 闪烁问题求解(已解决)
本帖最后由 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%起步而不闪烁?
你这是创建了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 本帖最后由 itqijian 于 2021-11-14 09:24 编辑
afan 发表于 2021-11-13 22:52
你这是创建了3次进度条,而不是在一个进度条上修改进度…
谢谢 @Afan解决了重0%起步闪烁问题
_LabelProgress_SetText($Form1,"",' 2.开始安装... ' & $i & '%')
新的问题:再新创建的进度条文字只显示第一次进度条文字,没有显示后面创建进度条文字。
是要修改_LabelProgress_SetText 这个自定义函数吗?
你的提问帖仅自己可见有何意义 即然是求解,有必要<此帖仅作者可见>吗? itqijian 发表于 2021-11-14 09:18
谢谢 @Afan解决了重0%起步闪烁问题
_LabelProgress_SetText($Form1,"",' 2.开始安装... ' & $i & ...
建新进度条先 _LabelProgress_Off($aProgress) 删除旧的,不然就换地方创建。重叠到一起…… 不说自明
又或者,同一位置坐标,为何要新建? afan 发表于 2021-11-14 14:00
建新进度条先 _LabelProgress_Off($aProgress) 删除旧的,不然就换地方创建。重叠到一起…… 不说自明
...
按照给出的思路,测试后。这是回到原来的闪烁问题上了。 这是一个死循环无解? 本帖最后由 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 本帖最后由 itqijian 于 2021-11-16 07:46 编辑
yohoboy 发表于 2021-11-16 02:10
谢谢帮忙,完美解决。
页:
[1]