Besoin d'aide pour raccourcir un code : animation d'un label

Résolu
cs_maxwells Messages postés 31 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 9 novembre 2008 - 18 avril 2005 à 13:41
cs_maxwells Messages postés 31 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 9 novembre 2008 - 18 avril 2005 à 14:19
Bonjour voici un code qui donne l'effet d'une animation dans un label :

Dim Count as integer

Private sub form_load
Timer1.enabled = true
Timer1.interval = 1
Count = 0
End Sub


Private sub Timer1_Timer()
Dim T
Count = Count + 1
T = 200If Count T then Label1.caption "B"If Count T + 2 then Label1.caption "Bo"If Count T + 4 then Label1.caption "Bon"If Count T + 6 then Label1.caption "Bonj"If Count T + 8 then Label1.caption "Bonjo"If Count T + 10 then Label1.caption "Bonjou"If Count T + 12 then Label1.caption "Bonjour"If Count T + 16 then Label1.caption "Bonjour t"If Count T + 18 then Label1.caption "Bonjour to"If Count T + 20 then Label1.caption "Bonjour tou"If Count T + 22 then Label1.caption "Bonjour tout"If Count T + 26 then Label1.caption "Bonjour tout l"If Count T + 28 then Label1.caption "Bonjour tout le"If Count T + 32 then Label1.caption "Bonjour tout le m"If Count T + 34 then Label1.caption "Bonjour tout le mo"If Count T + 36 then Label1.caption "Bonjour tout le mon"If Count T + 38 then Label1.caption "Bonjour tout le mond"If Count T + 40 then Label1.caption "Bonjour tout le monde"If Count T + 44 then Label1.caption "Bonjour tout le monde !"If Count T + 46 then Label1.caption "Bonjour tout le monde !!"If Count T + 48 then Label1.caption "Bonjour tout le monde !!!"
End Sub

Voilà je pense que vous serez d'accord avec moi que ce code est très long.
Et quand il s'agit de faire apparaître tout un texte comme ça; ça vous rend fou.

J'aurais voulu savoir s'il est possible de raccourcir de ce code (probablement, mais je ne sais comment).
Existe-t-il une fonction du même genre que la fonction Right(Anystring, 3) mais qui lirait seulement le troisième caractère ,et pas comme celle-ci qui renvoie les 3 premiers caractères en partant de la droite.

Merci de votre aide.

[mailto:M@xwells M@xwells] M@ni@c
La vie est injuste et il nous faut l'accepter comme elle nous vient.

7 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
18 avril 2005 à 14:03
Dim Count As Integer
Dim Chaine As String


Private Sub form_load()
Timer1.Enabled = True
Timer1.Interval = 1
Chaine = "Bonjour tout le monde !!!"
End Sub


Private Sub Timer1_Timer()
Count = Count + 1
If Count < 200 Then Exit Sub
Label1.Caption = Left$(Chaine, (Count - 199) \ 2)
If Count > 248 Then Timer1.Enabled = False
End Sub

Daniel
3
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
18 avril 2005 à 14:06
Pour ta fonction "du même genre que la fonction Right(Anystring, 3) mais qui lirait seulement le troisième caractère ,et pas comme celle-ci qui renvoie les 3 premiers caractères en partant de la droite." Tu peux utiliser Mid :
TroisièmeLettre = Mid(String, 3)

Pour ton Timer :

Dim intCount As Integer


Private Sub form_load()
Timer1.Enabled = True
Timer1.Interval = 2
intCount = 0
End Sub


Private Sub Timer1_Timer()
Dim Str As String
Str = "Bonjour tout le monde !!!"
intCount = intCount + 1
If intCount > 100 Then
Label1.Caption = Left(Str, intCount - 100)
End If
End Sub

Dis moi si ça te convient.


Ciaò
MadMatt
http://matthieu.napoli.neuf.fr/wintools.html</FO< body>
3
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
18 avril 2005 à 14:13
c'est vrai qu'avec un timer de 2 et compter de 1 en 1 c'est mieux qu'un Timer de 1 et compter de 2 en 2.
j'avais remarqué la chose.
de toute façon vu la précision du Timer, en dessous de 10 c'est pas valable.

Daniel
3
djechiant Messages postés 12 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 18 avril 2005
18 avril 2005 à 13:53
Bonjour à toi.

Il existe la fonction "mid" qui te demande d'entrer la chaine de caractere l'endroit ou tu veux te placer et le nombre de caractere a mettre en oeuvre.

ex:
text1.text=text1.text + mid ("Bonjour tout le monde !!!",3,1)
ce bout de code permet de rajouter la lettre "n" à la chaine de carac déjà présente dans la textbox
J espere t avoir aidé

Djechiant vous salut
0

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

Posez votre question
cs_maxwells Messages postés 31 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 9 novembre 2008
18 avril 2005 à 13:58
Merci mais je pense pas que ça va raccourcir le code !
Je vais quand même essayer mais si il y ad'autres propositions, je suis preneur.

[mailto:M@xwells M@xwells] [mailto:M@ni@c M@ni@c]
La vie est injuste et il nous faut l'accepter comme elle nous vient.
0
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
18 avril 2005 à 14:08
Ben ya eu des réponses pendant que j'écrivait c fort ça


Ciaò
MadMatt
http://matthieu.napoli.neuf.fr/wintools.html</FO< body>
0
cs_maxwells Messages postés 31 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 9 novembre 2008
18 avril 2005 à 14:19
Merci à Gobillot et Madmatt.
J'étudierai vos propositions ce soir.
Il est vrai que la remarque du Timer en 1 au lieu de 2 j'aurai pu y penser mais merci quand même.
THANK YOU TO THE COMMUNITY CODES SOURCES

[mailto:M@xwells M@xwells] M@ni@c
La vie est injuste et il nous faut l'accepter comme elle nous vient. (Ici la vie est très clémente avec moi puisqu'en l'espace d'une vingtaine de minutes j'ai obtenu 3 réponses à mon problème. Je le dis aujourd'hui : "LA COMMUNAUTE CODES SOURCES EST TRES EFFICACE !!!!!" [mailto:M@xwells M@xwells] M@ni@c)
P.S. : Jadore les smileys
0
Rejoignez-nous