Comment faire une barre de progrès dans Turbo Delphi en utilisant seulement TLabel pas TProgressBar
donc ici la logique
pour 1%="|" dans le TLabel et pour un "|" nous avons besoin de 10 fois en boucle
donc, pour atteindre 100%= 100 fois "|" nous avons besoin de 1000 fois en boucle
pouvez-vous m'aider avec le code?
3 réponses
peut-être pourriez-vous utiliser la fonction StringOfChar?
quelque chose comme ça:
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;
Je ne suis pas sûr à 100% de comprendre ce que vous voulez dire, mais je pense que c'est quelque chose comme ça (supposons que "label" est 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;
Je ne suis pas sûr pour le repeat vs. refresh, et si vous devez repeat/refresh le formulaire entier, mais c'est à vous.
Espère que ça aide.
et c'est une variante de la solution de Bing, qui montrent le pourcentage à l'intérieur (milieu) de la barre.
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;
Excusez-moi pour mon mauvais anglais. Égard.
Neftalí-Germán Estévez -