Réaliser un label dont le texte s'affiche lettre par lettre [Résolu]

Zang8 22 Messages postés mardi 13 janvier 2015Date d'inscription 13 avril 2015 Dernière intervention - 23 janv. 2015 à 21:12 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention
- 15 févr. 2015 à 18:49
Bonjour à tous !

Je viens poser ma question ici car même après plusieurs heures de recherches sur la toile je n'ai pas la réponse.

J'aimerai qu'à l'ouverture d'une form un texte s'affiche automatiquement (mais pas d'un seul coup)

C'est à dire avec par exemple un timer qui à chaque tick m'affiche un caractère supplémentaire de mon label (le texte du label étant préalablement définit)

J'ai bien trouvé ceci,
http://codes-sources.commentcamarche.net/forum/affich-10174-envoyer-un-text-lettre-par-lettre
mais hélas mon faible niveau en VB ne me permet pas d'adapter ma situation ^^' (je sorts tout juste du VBA)

D'avance merci :)
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 24 janv. 2015 à 21:27
1
Merci
Bonjour

 Private word As String
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Timer1.Interval = 200
Timer1.Start()
word = "BONJOUR"
End Sub

Private Sub Timer1_Tick(sender As Object, e As System.EventArgs) Handles Timer1.Tick
Static x As Integer = 1
Label1.Text = word.Substring(0, x)
x += 1
If x > word.Length Then
DirectCast(sender, Timer).Stop()
End If
End Sub

Merci cs_ShayW 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Zang8 22 Messages postés mardi 13 janvier 2015Date d'inscription 13 avril 2015 Dernière intervention - 24 janv. 2015 à 21:59
Waow Merci à tous pour ces réponses :)
Je vais tester ça et je reviens vous dire quoi ! ;)

Splendide ! tout fonctionne comme je le voulais avec ton code ShayW ! :)
Lilnice 2 Messages postés samedi 14 février 2015Date d'inscription 14 février 2015 Dernière intervention - 14 févr. 2015 à 15:12
Salut, s'il te plait,
peux-tu nous dire sous quel VB ce code fonctionne?
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention > Lilnice 2 Messages postés samedi 14 février 2015Date d'inscription 14 février 2015 Dernière intervention - 15 févr. 2015 à 18:49
Au hasard (???) ===>> celui objet du présent sous-forum !
Commenter la réponse de cs_ShayW
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 23 janv. 2015 à 21:34
0
Merci
Bonjour,
Il sera bien que tu nous dises sous quoi tu développes.
Tu es ici dans le forum général Visual Basic.
Or, la réponse que tu attends est différente selon que tu développes sous VB6 ou sous VB.Net (qui ont leurs sous-forums).
Zang8 22 Messages postés mardi 13 janvier 2015Date d'inscription 13 avril 2015 Dernière intervention - 23 janv. 2015 à 21:59
oops désolé, je suis sous Microsoft Visual Basic 2010

Ma réponse se trouve peut être ici..

Private Sub Timer1_Timer()

Static Position As Long
Static Initialise As Boolean
Dim LeTexte As String
Dim LeTexteApres As String

LeTexte = "Je Défile dans un Label !"

If Initialise = False Then
Initialise = True
Position = Len(LeTexte)
End If

Position = Position + 1

If Position >= 0 Then
LeTexteApres = Space(Position) & LeTexte
Else
LeTexteApres = Mid(LeTexte, Abs(Position))
If Position < -Len(LeTexte) Then
Position = Len(LeTexte)
End If
End If

Label1 = LeTexteApres
End Sub


Si tel est le cas, je n'arrive pas à corriger l'erreur qui se produit au niveau de Abs dans
LeTexteApres = Mid(LeTexte, Abs(Position))
NHenry 14280 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 22 octobre 2018 Dernière intervention - 23 janv. 2015 à 23:02
Quelle erreur ?
De plus, retires l'import automatique de Microsoft.VisualBasic (onglet 'références ' des propriétés de ton projet) et utilises les méthodes du framework.

Par exemple, Mid -> Chaine.SubString(...)
Zang8 22 Messages postés mardi 13 janvier 2015Date d'inscription 13 avril 2015 Dernière intervention - 23 janv. 2015 à 23:15
Salut NHenry et merci de rejoindre le sujet,
alors j'ai retiré l'import auto et plusieurs éléments (Mid, Len, Space...) ne sont plus déclarés (dois je continuer sur cette base ou un code différent conviendrait mieux à me requête).

Ps: pour information pourquoi me demandes tu de retirer l'import automatique de Microsoft.VisualBasic ?
NHenry 14280 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 22 octobre 2018 Dernière intervention - 26 janv. 2015 à 21:37
Cet import t'incite à utiliser des fonctions de compatibilité de VB6, cela est fortement déprécié.
Les fonctions du Framework sont nettement plus adaptées et plus logique à utiliser.

Mid -> String.SubString
Len -> String;Length
Space -> New String(...)
Commenter la réponse de ucfoutu
cs_Le Pivert 5458 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 22 octobre 2018 Dernière intervention - 24 janv. 2015 à 08:43
Zang8 22 Messages postés mardi 13 janvier 2015Date d'inscription 13 avril 2015 Dernière intervention - 24 janv. 2015 à 14:15
Bonjour et merci cs_Le Pivert cependant je ne suis pas sur de pouvoir réaliser ce que je veux avec le code que tu cites.
je ne cherche pas à déplacer le texte.. Ce que je cherche en gros ca ressemble à ça :

Label1 = Bonjour
Timer = True
Tick 1 = Label1 = B
Tick 2 = Label1 = Bo
Tick 2 = Label1 = Bon
Tick 2 = Label1 = Bonj
Tick 2 = Label1 = Bonjo
Tick 2 = Label1 = Bonjou
Tick 2 = Label1 = Bonjour
Timer = False

Voila bon c'est en gros x) (ca n'a rien de très pro affiché comme ca mais peut être est-ce plus clair ?)

Merci encore d'étayer le sujet :)
Commenter la réponse de cs_Le Pivert
cs_Le Pivert 5458 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 22 octobre 2018 Dernière intervention - 24 janv. 2015 à 14:29
0
Merci
Le code que tu nous a montré est celui-ci, qui date de 1999 en VB6 de Nix. Il déplace un texte:

http://codes-sources.commentcamarche.net/source/70-faire-defiler-un-texte-dans-un-label

Pour faire ce que tu veux:

Mettre 2 Timers avec ce code:

Option Strict On
Public Class Form1
    'https://www.youtube.com/watch?v=nwT9UxRW_jw
    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        If Me.Text = "" Then
            Me.Text = "T"
        ElseIf Me.Text = "T" Then
            Me.Text = "TU"
        ElseIf Me.Text = "TU" Then
            Me.Text = "TUT"
        ElseIf Me.Text = "TUT" Then
            Me.Text = "TUTO"
        ElseIf Me.Text = "TUTO" Then
            Timer1.Stop()
            Timer2.Start()
        End If
    End Sub
    Private Sub Timer2_Tick(sender As System.Object, e As System.EventArgs) Handles Timer2.Tick
        If Me.Text = "TUTO" Then
            Me.Text = "TUT"
        ElseIf Me.Text = "TUT" Then
            Me.Text = "TU"
        ElseIf Me.Text = "TU" Then
            Me.Text = "T"
        ElseIf Me.Text = "T" Then
            Me.Text = ""
            Timer2.Stop()
            Timer1.Start()
        End If
    End Sub
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Me.Text = ""
        Timer1.Start() 'regler les 2 Timers à 500
      End Sub
   End Class


A adapter à un label


Commenter la réponse de cs_Le Pivert
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 24 janv. 2015 à 20:38
0
Merci
Bon jour,
Est-t-il vraiment si "difficile" :
1) de comprendre et utiliser la méthode Substring de VB.Net pour extraire (et afficher ensuite) les x premiers caractères d'une chaîne alphanumérique ?
2) de déclarer la variable x statique dans l'évènement Tick d'un timer et de l'incrémenter de 1 unité à chaque tick ? (et bien sur de l'interrompre dès que x = la longueur du texte à afficher) ?
Vraiment ?
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.