Progressbar et timer [Résolu]

Signaler
Messages postés
115
Date d'inscription
mercredi 29 novembre 2000
Statut
Membre
Dernière intervention
16 avril 2006
-
 cln10 -
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

Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
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
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
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
Messages postés
115
Date d'inscription
mercredi 29 novembre 2000
Statut
Membre
Dernière intervention
16 avril 2006

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
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
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
Messages postés
115
Date d'inscription
mercredi 29 novembre 2000
Statut
Membre
Dernière intervention
16 avril 2006

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?
Messages postés
115
Date d'inscription
mercredi 29 novembre 2000
Statut
Membre
Dernière intervention
16 avril 2006

Parfait,je n'avais pas vu ton second poste, mais la,ca fonctionne,merci
@++
Messages postés
115
Date d'inscription
mercredi 29 novembre 2000
Statut
Membre
Dernière intervention
16 avril 2006

et comment faire pour faire clignoter un label?
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
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
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.