Inno Setup TOutputProgressWizardPage 的 SetProgress 不会立即更新进度条

问题描述 投票:0回答:1

我正在使用 Inno Setup,我创建了一个进度页面,设置进度条值并提取文件:

ProgressPage := CreateOutputProgressPage('Preparing installations', '');
ProgressPage.SetProgress(50, 100);
ProgressPage.Show();
try
  ProgressPage.Msg1Label.Caption := 'preparation ....';
  ExtractTemporaryFile(C_Myfile);

  ProgressPage.SetProgress(100, 100);
finally
  ProgressPage.Hide();
end;

但是当我开始安装时,条形图显示为 0,即文件开始提取。 bar应该如何设置为50?

progress-bar inno-setup pascalscript
1个回答
3
投票

从 Windows Vista 开始,设置进度条位置会启动一个简短的动画,将进度条移动到所需位置。但当应用程序(安装程序)在

ExtractTemporaryFile
期间冻结时,动画不会发生。

有一个技巧可以避免动画。只需将位置设置得高一点,然后再移回来即可。向后移动位置时没有动画。
请参阅更改值时禁用 .NET 进度条动画?

并且只有在

TOutputProgressWizardPage.Show
之后才需要设置位置。

ProgressPage.Show();
ProgressPage.SetProgress(51, 100);
ProgressPage.SetProgress(50, 100);

相关问题:
Inno Setup安装进度条未达到100%

© www.soinside.com 2019 - 2024. All rights reserved.