CLIGNOTEMENT EN VISUAL BASIC AVEC LE CONTRÔLE "TIMER"

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 - 15 juin 2005 à 14:02
zonebleue Messages postés 73 Date d'inscription samedi 15 janvier 2005 Statut Membre Dernière intervention 16 octobre 2007 - 28 oct. 2005 à 15:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/32083-clignotement-en-visual-basic-avec-le-controle-timer

zonebleue Messages postés 73 Date d'inscription samedi 15 janvier 2005 Statut Membre Dernière intervention 16 octobre 2007
28 oct. 2005 à 15:17
hè bayeds, pourquoi tu mes un code de flash dans la catégorie multimédia ????
djmerlone Messages postés 4 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 24 juin 2005
24 juin 2005 à 22:03
Non non :-) Jinsiste merci a toi de m'aider !

Ici aussi je debute completement le vb.net ...

Sympas, merci encore ..


Ps: " Oui la proprité enabled du timer n'existe pas en VB .Net ! " - Oui, Elle exitste quand elle a linterieur dun timer_tick ...
Optitech Messages postés 134 Date d'inscription samedi 19 octobre 2002 Statut Membre Dernière intervention 3 janvier 2009
24 juin 2005 à 12:42
Merci de ta réposne !
Oui la proprité enabled du timer n'existe pas en VB .Net ! mias je ne ooiuvait pas savoir que ce que tu voulait faire devait être en .Net ! Je vias essyer de réfléchir à ton problème ! Mais je n'y connais pas trop en Vb .Net car je commence !

@++

Optitecg ^^
djmerlone Messages postés 4 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 24 juin 2005
23 juin 2005 à 23:57
" Ce que je comprend s'est que tu as un PictureBox avec une image A et une image B et tu vuet que toute les 5 secondes l'image A soit remplaceé par l'image B et inversement. et tu veut que quand c'est l'image B qui est afficher elle clignote toute les 2 sec c'est ca ?? "

Ops , pardon javais pas repondu juste avant mon dernier message.

Oui c'est bien ca Optitech.
djmerlone Messages postés 4 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 24 juin 2005
23 juin 2005 à 22:09
Ok merci , bon en fait je pense que cest pas tout as fait la meme chose en vb.net ( jai visual studio 2003), pour certain mot clé ou methode. Par exemple la ligne ou tu as ecris: Timer2000ms.Enabled = False , et Timer2000ms.Enabled = True se souligne en bleu O_O

Doh , po facile eheh :-)
Optitech Messages postés 134 Date d'inscription samedi 19 octobre 2002 Statut Membre Dernière intervention 3 janvier 2009
23 juin 2005 à 19:53
Slt !

Ce que je comprend s'est que tu as un PictureBox avec une image A et une image B et tu vuet que toute les 5 secondes l'image A soit remplaceé par l'image B et inversement. et tu veut que quand c'est l'image B qui est afficher elle clignote toute les 2 sec c'est ca ??

Si c'est cela tu peut utilisé 2 timer à un interval de 5000 ms et un autre de 2000 ms ! Il fuat que le timer qui à 1 interval de 2000 ms est la propriété Enabled à False. Pour les images je te conseil un ImageList (disponible dans le composant Microsoft Windows Common Controls 5.0 ou 6.0) c'est super pratique pour cahrger les images dont tu as besoin et au lieu d'utiliser un PictureBox utilise le controle nommé Image.


Voila le code que j'utiliserait pour faire cela :

#Debut du code#

Option Explicit ' On est obliger de déclarer le variables

Dim x As Integer ' Soit la varibles x un interger (entre -32768 et 32767)
x = 1 ' on initialise x à 1

Private Sub Form_Load() ' Au chargment de la feuille

ImageList1.ListImages.Add 1, "", LoadPicture(App.Path & "\imageA.jpg") ' On charger l'image A
ImageList1.ListImages.Add 2, "", LoadPicture(App.Path & "\imageB.jpg") ' On charger l'image B
Image1.Picture = LoadPicture(ImageList1.ListImages.Item(1)) ' On affihce l'image A

End Sub

Private Sub Timer2000ms_Timer()

If Image1.Visible = True Then
'on cache

Image1.Visible = False

Else
'on affiche

Image1.Visible = True

End If

End Sub

Private Sub Timer5000ms_Timer() 'Timer qui ordonne le changement d'image

Timer2000ms.Enabled = False ' on eteind le clignotement
Image1.Visible = True ' On affiche car pour faire clignoté on l'efface !

Image1.Picture = LoadPicture(ImageList1.ListImages.Item(1))

x = x + 1 'on rajoute 1 à x

If x = 3 Then

x 1 ' x 1 car il n'y pas 3 image

Else
'On déclanche le clignotement toute les 2 secondes !

Timer2000ms.Enabled = True

End If

End Sub

#Fin du code#

J'espère que c'est ce que tu as demandé ! Sinon c'est pas grave ca peut toujours servir ! Et si tu n'a pas comprit ou que cela ne marhce pas n'exite pas à ecrire un post !

@++

Optitech
djmerlone Messages postés 4 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 24 juin 2005
23 juin 2005 à 18:36
Et pour faire alterner 2 images (picturebox) avec timer a 5 secondes dont l' autre image clignote pendant 2 secondes?
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
16 juin 2005 à 19:39
rajoute un thread par dessus ça et on peut faire n'importe quoi lol
Optitech, c'est une habitude de poster en double lol
Optitech Messages postés 134 Date d'inscription samedi 19 octobre 2002 Statut Membre Dernière intervention 3 janvier 2009
16 juin 2005 à 15:09
Oui en super en .Net ! J'ai VS.Net chez moi mais mon PC n'arrive pas le lancer un demande beuacoup trops de puissance !

Mais l'héraitgae c'est un outil surper ! on peut faire plein de truc très simplat ! Donc de boutto nqui clignote ou même qui se dépalce tout seul, etc...
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
16 juin 2005 à 13:56
oui rendu là, regarde plutot ma source http://www.vbfrance.com/code.aspx?ID=31810

au moins, je l'ai faite sur un bouton mais avec l'héritage en .net avec la possibilité de le faire clignoter ou non et de modifier la vitesse et/ou changer les couleur pendant l'éxécution

c'est déjà pas mal plus complet et ça montre l'héritage sur un code source simple
Optitech Messages postés 134 Date d'inscription samedi 19 octobre 2002 Statut Membre Dernière intervention 3 janvier 2009
16 juin 2005 à 10:57
Oui ta source n'a rien d'exeptionnelle ! Mais avec on peut apprendre d'autre chose on peut apprendre à ce servir des tableaux ! LA ta source en fiat que le clignotement qu'avec 2 couleur pourquoi par 3,4,5,... couleurs ou controle c'est possible mais pas avec ta méthode car rapidement on aurat de scentianes de lignes de codes ! L'un des problèe de ta source c que on doit mettre en palce dès le début les couleurs. Voilà ce que je te propose pour rajouté des couleur est des controles ! Mon exmeple est basé sur ta source !

Debut de mon code

Dim i As Integer 'Décalration de la variable i en varialve global (La mettre au tout début du code sinon ne fonctionne pas)

Private Sub Timer1_Timer()

Dim tabfrom, tablabel 'Déclaration de deux variables

tabfrom = Array(&HFF&, &HFFFFFF) 'Mise en palce du tableau des couleurs pour la form
tablabel = Array(&HFFFFFF, &HFF&) 'Mise en palce du tableau des couleurs pour le label

Form1.BackColor = tabfrom(i) 'Mise en palce de la couleur de l'arrière plan de la from
Label1.BackColor = tablabel(i) 'Mise en palce de la couleur de l'arrière plan du label

i = i + 1 'on rajoute 1 à i

If i 2 Then i 0 'si i = 2 alors i=0 (Oui avec cette disposion on n'est pas obligé de mettre le End If)

End Sub

Fini de mon code

Pour rajouté de scouelur il suffit de raojute le code de la couluer choisi dnas Array(&HFF&, &HFFFFFF ,CODE DE LA COULEUR, UN AUTRE CODE, etc..., ..., ...) Attention il doit y avoir le même nombre de couelru dans chaque tableu et il faut modifer le if à la fin de la sub pour que cela focntionne !

Pour rajouter de controle qui clignote :

CONTROLE.PROPRIETE = TABLEAU(i)

Voila j'espère que tu as comprit ce que j'ai mit s'il y a des question n'esiter pas !

@++

Optitech
thebrainwasher Messages postés 20 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 18 août 2007
15 juin 2005 à 22:07
oua magnifique, c'est dingue ce qu'on peut faire en vb
cs_Pingouin Messages postés 262 Date d'inscription lundi 26 août 2002 Statut Membre Dernière intervention 24 août 2005
15 juin 2005 à 18:05
Déception...
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
15 juin 2005 à 16:57
Idem, clair qu'on pense directement au Macromedia Flash!!!
Et idem aussi sur l'intéret d'une telle source!!!
Mais comme c'est ta première source... on t'en veux pas :-D
Soit le bienvenu et persévère...

A bientot pour ta prochaine source! ;-)
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
15 juin 2005 à 16:01
Mouai, aucun interet...
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
15 juin 2005 à 15:01
ben flash en vb ça fonctionne très bien, pis ça prend le même nombre de ligne lol
désoler mais source sans intéret, le but d,une source est d'apprendre, mais là ....
gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
15 juin 2005 à 14:49
Bonjour,

Y a plus simple et sans couleur.

Private Sub Timer1_Timer()
' AFFICHAGE OU NON DU LABEL
Label1.Visible = Not Label1.Visible

End Sub

@++
[GALLY HOME CORP]
jrbleboss Messages postés 480 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 3 septembre 2007 1
15 juin 2005 à 14:11
Moi aussi je croyais que c'etait du flash(le language).
La ya pas un grabd interet mais bon.
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
15 juin 2005 à 14:02
Ce code ne fonctionne que si on initialise les couleurs de fond du label et du formulaire à une des deux données (FF ou FFFFFF).

Quand j'ai vu le titre (FLASH EN VISUAL BASIC), je me suis dit ... "Tiens, du Macromedia Flash".
Bah non en fait....

Ton code est simplifiable, il y a un peu trop de répétitions :


1. Private Sub Timer1_Timer()
1,5 With Label1
2. If .BackColor = &HFFFFFF Then
3. .BackColor = &HFF&
4. Else
5. .BackColor = &HFFFFFF
6. End If
7. End With
7,5 With Form1
8. If (.BackColor = &HFFFFFF) Then
9. .BackColor = &HFF&
10. Else
11. .BackColor = &HFFFFFF
12. End If
12,5 End With
13. End Sub
Rejoignez-nous