bonjour ; pour que un label cliniote dans une fiche j'ai utilisé un Timer , je veut apres un moment label s'arrete de clinioté comment je fait.merci d'avance pour votre aide.
bonjour ; pour que un label cliniote dans une fiche j'ai utilisé un Timer , je veut apres un moment label s'arrete de clinioté comment je fait.merci d'avance pour votre aide.
Tu met la propriété Enabled de ton Timer à false
saluuuuut , ou je met Timer1->Enabled=false.
j'ai utilisé ce code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void __fastcall TForm3::Timer1Timer(TObject *Sender) { if(Form3->Label1->Visible==false) Form3->Label1->Visible=true; else {Form3->Label1->Visible=false;}
Tu peux "simplifier" la fonction de ton Timer en supprimant un test (au final ca change rien, mais c'est juste plus court).
Pour arrêter ton Timer tu peux placer ton code par exemple dans un bouton arrêter :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void __fastcall TForm3::Timer1Timer(TObject *Sender) { Label1->Visible = !Label1->Visible ; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void __fastcall TForm3::Button1Click(TObject *Sender) { Timer1->Enabled = false ; }
bonjour.est ce que il ya une possibilité que label s'arrete de clinioté sans cliké sur un bouton d'arret.merci d'avance pour votre aide.
Oui, mais a quel moment tu souhaite l'arrêt du clignotement?
Après un certain temps? Après un certain nombre de clignotements? Tu peux utiliser une variable de comptage que tu incrémente dans la fonction de ton Timer, et lorsque cette variable a atteint une valeur, tu met Enabled de ton Timer à false ;
salut ,je veut apres un certain nombre de clignotements .
j'ai utilisé ce code mais ça marche pas.
merci d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int i=0; while(i<20) {Form3->Label1->Visible = !Label1->Visible ; i++;} Form3->Timer1->Enabled=false;
Tu declare une variable de classe de type int dans la section private de ton *.h :
Tu initialise ton compteur a un endroit donnée (là ou tu le souhaite) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 private: // Déclarations utilisateur int compteur ;
Et dans ton Timer tu incrémente la variable et tu teste qu'elle ne dépasse pas une valeur. Si elle dépasse une certaine valeur, tu met Enabled de ton Timer à false ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part compteur = 0 ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 void __fastcall TForm3::Timer1Timer(TObject *Sender) { Label1->Visible = !Label1->Visible ; compteur = compteur +1 ; if( compteur > 20 ) { Timer1->Enabled = false ; Label1->Visible = true ; // ou false si tu veux qu'au final le label soit caché } }
j'ai utilisé ton code mais label clignote encore.
j'ai un autre probleme pour la premiere utilisation il marche bien mais quand j'ai voulu refere label s'affiche sans clignotement au début .peut etre s'avient de compteur =0????
peut etre il faut le remetre a 0 a chaque fois .merci d'avance pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 fastcall TForm3::TForm3(TComponent* Owner) : TForm(Owner) {compteur = 0 ;
Il faut remettre le compteur à 0 et remettre la propriété Enabled du Timer à true, et tu fais ça à l'endroit du code ou tu veut relancer ton clignotement
j'ai fait quesque tu ma dit mais il reste le meme probleme , je ne sais pas elle est ou erreur.merci pour votre aide
Tu peut montrer le code ou tu remet le compteur à 0 et le Enabled du Timer à true ?
et j'ai refait l'inialisation de compteur dans la forme2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void __fastcall TForm2::BitBtn2Click(TObject *Sender) { if(e >= a&& e<= b) Form7->Show(); else{ Form3->Timer1->Enabled=true; compteur=0; Form3->Show(); Form3->Label2->Caption=vectStringGrid[indexStringGrid]->Cells[0][i]; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 private: // Déclarations utilisateur int compteur ;
Il faut que tu remette le conteur à 0 avant de remettre le Enabled à true et affiche plutot la form avant de commencer le clignotement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 void __fastcall TForm2::BitBtn2Click(TObject *Sender) { if(e >= a&& e<= b) Form7->Show(); else { Form3->Show(); Form3->Label2->Caption=vectStringGrid[indexStringGrid]->Cells[0][i]; compteur=0; Form3->Timer1->Enabled=true; } }
le meme probleme![]()
La fenêtre Form3 s'affiche-t-elle bien, si oui, il faudrait ajouter un Application->ProcessMessage() ou un Refresh() dans ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 void __fastcall TForm3::Timer1Timer(TObject *Sender) { Label1->Visible = !Label1->Visible ; //Ajouter ici le code de rafraichissement compteur = compteur +1 ; if( compteur > 20 ) { Timer1->Enabled = false ; Label1->Visible = true ; // ou false si tu veux qu'au final le label soit caché } }
le meme probleme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 void __fastcall TForm3::Timer1Timer(TObject *Sender) { Label1->Visible = !Label1->Visible ; Refresh() ; compteur = compteur +1 ; if( compteur > 20 ) { Timer1->Enabled = false ; Label1->Visible = true ; // ou false si tu veux qu'au final le label soit caché } }![]()
Essaye de mettre un point d'arrêt sur l'évènement OnTimer de ton Timer pour voir si il passe bien dedans quand tu le réinitialise
comment ça ?
Partager