Progressbar et timer

Résolu
guigui265
Messages postés
113
Date d'inscription
mercredi 29 novembre 2000
Statut
Membre
Dernière intervention
16 avril 2006
- 28 févr. 2006 à 09:59
 cln10 - 18 août 2019 à 16:50
Bonjour,
j'ai sur mon formulaire un progressbar,un timer et un bouton,entre autres.
Coomment faire pour que,sur le clic du bouton, la progressbar progresse de 0 a 100 avec par exemple 5 par seconde?comment gérer cela avec le timer?
car par la suite, je voudrais également,sur le meme formulaire mais avec un autre timer afficher plusieurs label mais en dégrader, un label par seconde.
Guillaume

9 réponses

jlen100
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
28 févr. 2006 à 11:24
plus simple

tu met la propriete max du progress bar à 30

procedure TForm1.Button1Click(Sender: TObject);

begin

// remise à 0 du progressbar et demarrage du timer
progressbar1.Position:= 0;

timer1.Enabled:=true;

end;



procedure TForm1.Timer1Timer(Sender: TObject);

begin

progressbar1.Position:=progressbar1.Position+1;; //mise à jour toutes les secondes en 30 secondes

if progressbar1.Position> =30 then timer1.Enabled:=false;// on arrete le timer à la fin

end;

@+

jlen
2
jlen100
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
28 févr. 2006 à 14:36
utilises un timer et dans l'évement ontimer

procedure TForm1.Timer1Timer(Sender: TObject);

begin

if label1.Font.colorclwindowtext then label1.Font.color:clred //choisit la couleur que tu veux

else

label1.Font.color: =clwindowtext;

end;



@+

jlen
2
guigui265
Messages postés
113
Date d'inscription
mercredi 29 novembre 2000
Statut
Membre
Dernière intervention
16 avril 2006

28 févr. 2006 à 10:19
Enfin, peut etre n'y a t il pas besoin d'un timer,je ne sais pas, je voudrais juste que la progress bar augmente de facon visible, en fait,qu'elle se remplisse genre en 30 secondes
0
jlen100
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
28 févr. 2006 à 11:20
salut,

procedure TForm1.Button1Click(Sender: TObject);

begin

// remise à 0 du progressbar et demarrage du timer

progressbar1.Position:= 0;

timer1.Enabled:=true;

end;



procedure TForm1.Timer1Timer(Sender: TObject);

begin

progressbar1.Position:=progressbar1.Position+100 div 30; //mise à jour toutes les secondes en 30 secondes

if progressbar1.Position> =100 then timer1.Enabled:=false;// on arrete le timer à la fin

end;

@+

jlen
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
guigui265
Messages postés
113
Date d'inscription
mercredi 29 novembre 2000
Statut
Membre
Dernière intervention
16 avril 2006

28 févr. 2006 à 11:27
ok,le fonctionnement est mieux,ce que j'avais fait était dans ce genre mais il me manquait quelques détail! merci
mais la barre se rempli vite, 2secondes peut etre,comment le changer?
0
guigui265
Messages postés
113
Date d'inscription
mercredi 29 novembre 2000
Statut
Membre
Dernière intervention
16 avril 2006

28 févr. 2006 à 11:36
Parfait,je n'avais pas vu ton second poste, mais la,ca fonctionne,merci
@++
0
guigui265
Messages postés
113
Date d'inscription
mercredi 29 novembre 2000
Statut
Membre
Dernière intervention
16 avril 2006

28 févr. 2006 à 14:23
et comment faire pour faire clignoter un label?
0
jlen100
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
28 févr. 2006 à 15:25
pour le progressbar comme rien ne m'arrete encore plus simple


plus simple

tu met la propriete max du progress bar à 30

procedure TForm1.Button1Click(Sender: TObject);

begin

// remise à 0 du progressbar et demarrage du timer
progressbar1.Position:= 0;

timer1.Enabled:=true;

end;



procedure TForm1.Timer1Timer(Sender: TObject);

begin

with progressbar1 do

begin

Position:=Position+1;; //mise à jour toutes les secondes en 30 secondes

if Position> max then timer1.Enabled:false;// on arrete le timer à la fin

end;

end;

ainsi si tu veux changer la duréee il suffit de modifier la propriete max du progressbar

@+

jlen
0
Bonjour
moi égale j'ai un problème similaire mais dans mon programme j'ai un timer et un progressbar, je veux contrôlé le niveau de remplissage d'eau dans un citerne.
j'ai utilisé trois niveaux :

if cts(s)=1 then begin
progressbar4.Position:=100;
end else
progressbar4.Position:=0;

if RI(s)=1 then begin
progressbar4.Position:=100;
end else
progressbar4.Position:=0;

if DSR(s)=1 then begin
progressbar4.Position:=100;
end else
progressbar4.Position:=0;

je n'arrive pas a relier les trois conditions pour que le progressbar puisse se remplir progressivement.
0