Delphi TProgressBar从来不会一直充满-似乎更新得太快了?

Delphi TProgressBar从来不会一直充满-似乎更新得太快了?,delphi,progress-bar,Delphi,Progress Bar,可能重复: 从WindowsVista开始,我就注意到Delphi中的TProgressBar有一个bug/问题 问题是progressbar似乎从来没有达到100%,有时在progressbar认为达到最大值(即100%)之前,它可能达到70%-80% 我一直在各种网站上阅读,事实上,progressbar已经完成了它的操作。但是Delphi VCL中似乎存在一个错误,它没有准确地渲染progressbar,因此当它看起来完整但实际上不完整时,这是因为progressbar的绘制不准确 如果

可能重复:

从WindowsVista开始,我就注意到Delphi中的TProgressBar有一个bug/问题

问题是progressbar似乎从来没有达到100%,有时在progressbar认为达到最大值(即100%)之前,它可能达到70%-80%

我一直在各种网站上阅读,事实上,progressbar已经完成了它的操作。但是Delphi VCL中似乎存在一个错误,它没有准确地渲染progressbar,因此当它看起来完整但实际上不完整时,这是因为progressbar的绘制不准确

如果上述情况属实,这似乎是一个合理的理由——我还没有找到解决办法。无论是什么操作,包括一个TProgressBar,它从来没有填满100%,它只填满了大概75%的空间

我怎样才能让TProgressBar准确地加满油

另外,我尝试用JVCL的progressbar替换TProgressBar,这些非标准VCL组件工作正常。所以这不是我如何处理进度的问题,它不是Delphi就是Windows,或者两者兼而有之

是的,我可以使用上述替代方案,但如果可能的话,我想知道如何修复标准的TProgressBar

谢谢,克雷格。

这是Vista主题的一项功能。唯一已知的解决此功能的方法是在更新过程中后退

每次将进度条计数器设置为N时,请立即将其设置为N-1


Delphi代码没有问题,它是公共控件的一个特性。

您使用的是哪个版本的Delphi?尝试创建一个新项目,添加一个进度条,然后手动将设置为100。我喜欢进度条达到100并随机返回0次:)Delphi VCL不是呈现进度条的人。进度条是Windows常用控件;操作系统负责绘制它。这是windows vista主题中一个非常奇怪的元素。有关此问题的更多信息,请参阅:您确实应该在答案中用引号引上“功能”,因为它不是大多数用户都会认为的那样。@mason我想这更多的是vista进度条比xp更平滑的功能的结果。是的,但是当你抛弃了准确性和正确性而选择“看起来平滑”时,控件的存在的全部目的是提供准确的进度读数,这不是一个功能。@梅森,我不是在为它辩护!这就是它,这是战胜它的方法。说“这是一个动画功能,你可能会觉得动画制作太慢”是否准确。。。。