Surligner mot d un texte

Résolu
steph42160 Messages postés 18 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 30 octobre 2006 - 30 janv. 2006 à 15:50
steph42160 Messages postés 18 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 30 octobre 2006 - 30 janv. 2006 à 21:36
Salut amis développeurs!!
j'aurais une petite question a vous poser. J'aimerais réalise une appli qui surligne un texte mot a mot suivant un timer.Ce texte provient d un fichier texte et peut etre dans un label ou un textbox.
Mon gros problème est de pouvoir surligner un mot ou mettre en gras ou changer la couleur de la police du mot.
Si vous avez une solution ou une idée prévenez moi!!
merci.
salut

3 réponses

bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
30 janv. 2006 à 16:35
Sur une feuille, met un TextBox nommé Text1 et un Timer nommé Timer1.
Met le Timer en False

Et copie le code suivant dans la feuille

Dim sTexte() As String 'Pour stocker le texte découpé
Dim iCurrent As Integer 'Pour savoir à quel mot on en est
Dim iPosition As Integer 'Pour sauvegarder la dernière position du curseur


Private Sub Form_Load()
'On met un texte dans la TextBox
Text1.Text = "Salut amis développeurs !! j 'aurais une petite question a vous poser. J'aimerais réalise une appli qui surligne un texte mot a mot suivant un timer. Ce texte provient d un fichier texte et peut etre dans un label ou un textbox. Mon gros problème est de pouvoir surligner un mot ou mettre en gras ou changer la couleur de la police du mot. Si vous avez une solution ou une idée prévenez moi !! merci."
'On decoupe le Texte pour recuperer tout les mots
ReDim sTexte(0)
sTexte = Split(Text1.Text, " ")
'On parametre le Timer
Timer1.Interval = 300
Timer1.Enabled = True
End Sub


Private Sub Timer1_Timer()
iCurrent = iCurrent + 1 If iCurrent UBound(sTexte) + 1 Then Timer1.Enabled False
Call Surligner(sTexte(iCurrent - 1), Text1, iPosition)
End Sub


Public Sub Surligner(Mot As String, TexteBox As TextBox, Optional Position_Mini As Integer = 1)
Dim i As Integer If Position_Mini 0 Then Position_Mini 1
i = InStr(Mid$(TexteBox.Text, Position_Mini), Mot)
If i = 0 Then Exit Sub
TexteBox.SelStart = i - 1 + Position_Mini - 1
TexteBox.SelLength = Len(Mot)
iPosition = i - 1 + Position_Mini
End Sub


Bonne prog
++
3
NHenry Messages postés 15025 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 157
30 janv. 2006 à 16:10
Bonjour

les TextBox ou les labels ne peuvent ahir que sur tous le texte, utilise plutot un RichTextBox.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
steph42160 Messages postés 18 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 30 octobre 2006
30 janv. 2006 à 21:36
Merci bouv de ta reponse qui marche très bien.
Pile ce dont j avais besoin!
a+
0