Changer la couleur d'un texte automatiquement

Signaler
Messages postés
15
Date d'inscription
lundi 26 janvier 2004
Statut
Membre
Dernière intervention
27 mars 2007
-
Messages postés
15
Date d'inscription
lundi 26 janvier 2004
Statut
Membre
Dernière intervention
27 mars 2007
-
je fais défiler un texte automatiquement. Je souhaite changer la couleur de ce texte mot par mot et ce de manière automatique. Pouvez-vous m'aider?
Merci
mp

7 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
97
Tout dépend de quels contrôles tu utilise !

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
Messages postés
15
Date d'inscription
lundi 26 janvier 2004
Statut
Membre
Dernière intervention
27 mars 2007

en fait, je suis ok pour n'importe quel contrôle: texte ou label ou autre si c'est plus facile!
merci
mp
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
97
Le plus simple, pour faire de la coloration mot à mot, c'est soit d'utiliser un contrôle Label par mot avec une couleur différente pour chaque mot, soit d'utiliser un contrôle RichTextBox grâce à ses propriétés SelColor pour faire de la coloration mot à mot, ou alors, passer par des fonctions de tracé de texte (Fonction Print de VB ou DrawText en fonction API), et à ce moment là, un PictureBox fait très bien l'affaire !

A toi de voir selon ton expérience de VB et selon le temps de recherche que tu peux y consacrer. Note : je pense avoir classé les possibilités par ordre croissant de difficulté, mais également par ordre croissant d'optimisation !

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
Messages postés
15
Date d'inscription
lundi 26 janvier 2004
Statut
Membre
Dernière intervention
27 mars 2007

merci beaucoup pour ton aide. J'ai réussi à colorer mon texte par mot mais cela donne un effet saccadé. J'aurais voulu avoir un effet plus fluide comme dans un karaoké. Je vais continuer à chercher parmi les pistes que tu m'as indiquées.
mp
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
97
Tout dépend de la méthode que tu as choisie : avec un timer relativement rapide, ca va clignoter avec les labels !
Avec un timer lent, ca va saccader avec toutes les méthodes que je t'ai donné !
L'idéal serait d'utiliser les fonctions API, mais c'est la méthode la plus compliqué à mettre en oeuvre !

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
Messages postés
1
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
24 février 2005

pourrait tu me dire comment tu as fait car je n'y arrive pas merci
Messages postés
15
Date d'inscription
lundi 26 janvier 2004
Statut
Membre
Dernière intervention
27 mars 2007

Bonsoir,

je n'ai pas vraiment réussi à faire ce que je voulais (j'ai fini par renoncer) mais je t'envoie ce que j'ai fait. en fait, j'ai un texte qui défile continuellement et je change la couleur 10 lettres à la fois.
voici le code du timer:
Private Sub Timer1_Timer()
rt1.Text = Right(rt1.Text, Len(rt1.Text) - 1) & Left(rt1.Text, 1)
rt1.Span "-", True, True
rt1.SelStart = rt1.SelStart + 1
rt1.SelLength = 10
rt1.SelColor = vbRed

End Sub

les 2 1ères lignes servent à faire défiler le texte (je ne sais plus pourquoi j'ai utilisé cela !!) et le reste sert à changer la couleur.
Voilà, j'espère que cela répond à ta question.

mp