所以這裏的邏輯如何在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