如何在turbodelphi中仅使用TLabel而不使用TProgressBar制作进度条
这就是逻辑 对于TLabel中的1%=“|”,对于一个“|”,我们需要10次循环 因此,要达到100%=100次“|”,我们需要1000次循环如何在turbodelphi中仅使用TLabel而不使用TProgressBar制作进度条,delphi,progress-bar,vcl,Delphi,Progress Bar,Vcl,这就是逻辑 对于TLabel中的1%=“|”,对于一个“|”,我们需要10次循环 因此,要达到100%=100次“|”,我们需要1000次循环 你能帮我翻译一下代码吗?我不是100%确定我明白你的意思,但我认为是这样的(假设“标签”是TLabel): 我不确定重绘与刷新,以及是否应该重绘/刷新整个表单,但这取决于您 希望对您有所帮助。也许您可以使用StringOfChar函数 大概是这样的: procedure TForm1.Button1Click(Sender: TObject);
你能帮我翻译一下代码吗?我不是100%确定我明白你的意思,但我认为是这样的(假设“标签”是TLabel): 我不确定重绘与刷新,以及是否应该重绘/刷新整个表单,但这取决于您
希望对您有所帮助。也许您可以使用StringOfChar函数 大概是这样的:
procedure TForm1.Button1Click(Sender: TObject);
var
X: Integer;
Total: Integer;
Percent: Integer;
begin
Total := 1000;
for X := 1 to Total do
begin
Sleep(100);
Percent := (X * 100) div Total;
Label1.Caption := StringOfChar('|', Percent) + IntToStr(Percent) + '%';
Label1.Repaint;
end;
end;
这是一个变体o Bing解决方案,显示了条内(中间)的百分比
procedure TForm1.Button1Click(Sender: TObject);
var
X: Integer;
Total: Integer;
Percent: Integer;
begin
Total := 1000;
for X := 1 to Total do begin
Sleep(5);
Percent := (X * 100) div Total;
Label1.Caption := StringOfChar('|', Percent DIV 2) +
' ' + IntToStr(Percent) + '% ' +
StringOfChar('|', Percent DIV 2);
Label1.Repaint;
Application.ProcessMessages;
end;
end;
请原谅我英语不好。
问候
内夫塔利-热尔曼·埃斯特维兹-是的,类似这样。如果我使用一个按钮来开始这个过程,我该怎么做?我解码你的代码以开始标签1。标题:='';对于i:=1到1000,如果i mod 10=0,则开始label1.caption:=label1.caption+'|';label1.repaint();终止终止但“|”似乎显示为fast.。通过双击相关窗格中的“OnClick”,转到按钮的“OnClick”事件。它看起来很快,可能是因为你的处理速度很快(对你有好处!)。。。如果您的整个过程需要一秒钟的时间,那么条形图将显示得很快。如果你想让他们看起来慢一点,你可以每100次只显示一个条(“i mod 100=0”),那么他们就会显得慢一点。这很有效!!最后一件事,我如何在“|”开始后添加百分比,从0%到100%,就像实际进度条一样…添加%符号:初始化标签。标题:='%';然后在循环中,在前面添加“|”,如label.caption:=”|“+label.caption;确保只在必要时重新喷漆,因为重新喷漆成本很高。调查类似“如果X mod 10=0,那么Label1.Repaint”这样的测试是否会提高性能。
procedure TForm1.Button1Click(Sender: TObject);
var
X: Integer;
Total: Integer;
Percent: Integer;
begin
Total := 1000;
for X := 1 to Total do begin
Sleep(5);
Percent := (X * 100) div Total;
Label1.Caption := StringOfChar('|', Percent DIV 2) +
' ' + IntToStr(Percent) + '% ' +
StringOfChar('|', Percent DIV 2);
Label1.Repaint;
Application.ProcessMessages;
end;
end;