如何改变progressBar的起始位置

Saf*_*afa -1 delphi winapi

如何通过将progressBar的一部分设置为空(例如0 - > 50)来更改progressBar的起始位置,并从50.开始进度(绿色),那么有没有具体方法可以做到这一点?

Dav*_*nan 5

进度条的位置由其Position属性决定.因此,假设进度条的限制是0100,并且您希望从中间开始,设置Position50.

你试图改变Min,但我怀疑你不明白做什么MinMax做什么.他们只是定义了Position财产的规模.所以,当Position等于时Min,则进度条为空,Position等于Max则进度条为满.Position中间的值MinMax指定部分完成的进度.

在数学上,进度条的完成比例由以下公式给出:

(Position-Min) / (Max-Max)
Run Code Online (Sandbox Code Playgroud)

所以,MinMax刚刚允许你定义为其中指定的比例完成了适宜的刻度.举例来说,如果你的进步自然以百分比表示,可以设置Min0Max100.或者,如果要测量文件传输的进度,则可以设置Min0Max要传输的总字节数.


在评论中,您通过声明:

我想将进度条的第一个中间设置为空,例如0 - > 50,并从50开始进度(绿色).

普通的香草进度条是不可能的.进度条从空到满.

使用标准控件无法找到您要查找的用户界面.您需要自己绘制进度条,而不是非常难以完成.如果您希望它看起来像本机控件,您可以使用主题API来绘制它.