Mas*_*ler 4 delphi delphi-2009 windows-vista
我有一个运行一系列操作的应用程序,我正在尝试使用TProgressBar来跟踪正在发生的事情.我设置了许多步骤,并调用.StepIt来增加进度条.
问题是,它没有很好地跟上.它似乎喜欢逐渐滑向它,而不是直接跳到正确的位置.如果它是你所追求的眼睛糖果,这一切都很好,但是当我试图准确地表达我的例程进展时,这使得它似乎总是落后于真实状态.如何关闭"功能"?
我只注意到在Windows Vista下发生这种情况.不确定它是否也在XP上进行,因为当我在XP上测试它时,过程进行得更快,而且过快.:P但这可能是也可能不是特定于Vista的.无论哪种方式,它都让我疯狂.有谁知道如何修理它?
如果您不介意将进度条设为黄色而不是绿色,我会有一个快速但部分且不优雅的解决方案:
ProgressBar1.SmoothReverse := True;
ProgressBar1.State := pbsPaused; // for yellow or pbsError for red
Run Code Online (Sandbox Code Playgroud)
或者,如果你不介意失去远景/主题外观并回到平坦的蓝色外观:
UxTheme.SetWindowTheme(ProgressBar1.Handle, ' ', ' ');
Run Code Online (Sandbox Code Playgroud)
根据微软的真正"问题"是,你试图将ProgressBar"变形"为他们声称不是的仪表.
你也可以尝试自己绘制;-)
小智 5
Windows7上的问题相同!!
但答案已经在一篇较旧的帖子中了:
如果tou使进度条向后退一步就没有延迟!!! 所以我实现了这个.....(并获得即时更新)
if(progress < ProgressBar.Max)
then
begin
ProgressBar.Position := progress+1;
ProgressBar.Position := progress; //This will set Progress backwards and give an instant update....
end
else
begin //cannot set position beyond max...
ProgressBar.Max := progress + 1;
ProgressBar.Position := progress + 1;
ProgressBar.Max := progress; //This will also set Progress backwards also so instant update........
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3537 次 |
| 最近记录: |