tlabel 만 사용하여 TPROGRESSBAR를 사용하여 Turbo Delphi에서 진행률 표시 줄을 만드는 방법

StackOverflow https://stackoverflow.com/questions/914288

  •  06-09-2019
  •  | 
  •  

문제

그래서 여기서 논리

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% 확신하지 못하지만, 나는 그것이 이와 같은 것 같아요 ( "레이블"이라고 가정) :

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;

Repaint vs. Refresh에 대해 잘 모르겠습니다. 전체 형식을 다시 칠/새로 고침 해야하는지 확실하지 않지만 그것은 당신에게 달려 있습니다.

도움이되기를 바랍니다.

그리고 이것은 막대의 (중간)의 백분율을 보여주는 변형 된 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;

내 나쁜 영어에 대한 변명. 문안 인사.


Neftalí -Germán Estévez-

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top