所以这里的逻辑如何在Turbo Delphi中使用ONLY TLabel创建进度条NOT TProgressBar
for 1%=“|”在TLabel和一个“|”我们需要循环10次
所以达到100%= 100次“|”我们需要循环1000次
你能帮我解码吗?
所以这里的逻辑如何在Turbo Delphi中使用ONLY TLabel创建进度条NOT TProgressBar
for 1%=“|”在TLabel和一个“|”我们需要循环10次
所以达到100%= 100次“|”我们需要循环1000次
你能帮我解码吗?
也许你可以使用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;
我不是100%肯定,我得到你的意思,但我认为这是这样的(假设“标签”是的TLabel):
label.caption := '';
for i := 1 to 1000 do
begin
... do stuff ...
if i mod 10 = 0 then
begin
label.caption = label.caption + '|';
label.repaint();
end;
end;
我不知道对与重绘刷新,以及是否应该重新绘制/刷新整个表单,但这取决于您。
希望有所帮助。
这是一个变体Ø兵解,即显示条内(中)的百分比。
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;
对不起我英文不好的原因。 此致敬礼。
Neftalí - 德语Estévez-
是,类似的东西。 如果我使用一个按钮来开始这个过程,我想怎么做? – Otip88 2009-05-27 07:21:11
我将yor码解码为 begin label1.caption:=''; for i:= 1 to 1000 do begin if i mod 10 = 0 then label1.caption:= label1.caption +'|'; label1.repaint(); 结束; 结束; 但似乎“|”显示更快.. – Otip88 2009-05-27 07:46:13