将'StepIt'从ProgressBar替换为cxProgressBar

Ros*_*erg 1 delphi devexpress progress-bar

我刚刚用cxProgressBar替换了我的常用进度条,但我注意到它没有方法'StepIt'.

我用这个替换了StepIt:

progressbar1.Position := progressbar1.Position+1;
Run Code Online (Sandbox Code Playgroud)

我不认为这是最好的选择,因为Progress比StepIt慢得多.

要设置最大值,我将获得sql表上将要转换为本地缓存的字段总数.

我从未尝试过除了常见的ProgressBar以外的任何东西,这就是我遇到这个问题的原因.

谢谢.

Joh*_*ica 5

从在线帮助:http://docwiki.embarcadero.com/VCL/en/ComCtrls.TProgressBar.StepIt

按Step属性中指定的金额推进排名.

调用StepIt方法,通过Step属性的值增加Position的值.如果Step表示进度条跟踪的进程中一个逻辑步骤的大小,则在每个逻辑步骤完成后调用Step.

以下代码应该可以解决问题.

procedure MyStepIt(NrOfSteps);
var
  Step: integer;
begin
  Step:= Max(1,(ProgressBar1.Max - ProgressBar1.Min) div NrOfSteps);
  ProgressBar1.Position:= Min(ProgressBar1.Max, ProgressBar1.Position + Step);
end;
Run Code Online (Sandbox Code Playgroud)