Inno Setup TOutputProgressWizardPage 的 SetProgress 不会立即更新栏
SetProgress of Inno Setup TOutputProgressWizardPage doesn't update the bar immediatelly
我正在使用 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?
自 Windows Vista 起,设置进度条位置会启动一个简短的动画,将进度条移动到所需位置。但由于应用程序(安装程序)在 ExtractTemporaryFile
期间冻结,所以动画不会发生。
有一个技巧可以避免动画。只需将位置设置得更高一点,然后将其移回。将位置移回没有动画。
参见 Disabling .NET progressbar animation when changing value?
并且只需要在TOutputProgressWizardPage.Show
之后设置位置。
ProgressPage.Show();
ProgressPage.SetProgress(51, 100);
ProgressPage.SetProgress(50, 100);
相关问题:
我正在使用 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?
自 Windows Vista 起,设置进度条位置会启动一个简短的动画,将进度条移动到所需位置。但由于应用程序(安装程序)在 ExtractTemporaryFile
期间冻结,所以动画不会发生。
有一个技巧可以避免动画。只需将位置设置得更高一点,然后将其移回。将位置移回没有动画。
参见 Disabling .NET progressbar animation when changing value?
并且只需要在TOutputProgressWizardPage.Show
之后设置位置。
ProgressPage.Show();
ProgressPage.SetProgress(51, 100);
ProgressPage.SetProgress(50, 100);
相关问题: