Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 20 févr. 2007 à 22:31
j'ai fait ça en VB6
Label en haut de la Forme.
Dim texte As String
Dim Lg As Integer
Dim max As Integer
Dim i As Integer
Private Sub Form_Load()
'exemple de texte à faire défiler
texte = "Désolé, notre moteur de recherche n'a pas trouvé de
résultat, nous vous proposons d'effectuer cette recherche avec Google
sur VBFrance.Com."
'on travaille en pixels
Me.ScaleMode = 3
'même police pour Forme et Label
Me.Font = "Courier"
Label1.Font = "Courier"
Me.FontSize = 12
Label1.FontSize = 12
'calcul des Longueurs
Lg = TextWidth(texte)
max = Me.ScaleWidth
'initialisation du Label
Label1.Top = 0
Label1.Width = Lg
Label1.Left = max
Label1 = texte
'position début
i = max
'réglage de la vitesse
Timer1.Interval = 200
'c'est parti
Timer1.Enabled = True
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 20 févr. 2007 à 22:31
Sinon tu traduit en vb6, le code que je t'ai donné . C'est encore plus simple, tu met le contenu de la fonction directement dans l'évènement du timer que tu auras posé sr ta feuille.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 20 févr. 2007 à 22:41
Sur une Form :
un Frame nommé Frame1 avec sa propriété Borderstyle = 0
Dans ce frame : un contrôle Label nommé Label1, avec sa propriété autosize = True
sur ta Form : un timer nommé timer1
Cide :
Private Sub Form_Activate()
Frame1.Move Me.Width / 4, Me.Height / 4, 1500, 200
Label1.Move 0, 0, Frame1.Width, Frame1.Height
Label1.Caption = "voici ce que tu voulais : un label avec texte déroulant, non ?"
Timer1.Interval = 100
End Sub
Private Sub Timer1_Timer()
Label1.Move Label1.Left - 30 If Label1.Left + Label1.Width <0 Then Timer1.Enabled False
End Sub
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 20 févr. 2007 à 22:58
C'est à toi d'adapter tes dimensions de label, pardi (je ne suis pas sur ta machine !)
Tout se passe dans l'événement Activate... (tiens .j'ai modifié la taille, par exemple...)
Pour tes aller/retour, c'est ultra simple :
regarde :
Private sens As Integer
Private Sub Form_Activate()
Frame1.Move Me.Width / 4, Me.Height / 4, 3000, 300
Label1.FontSize = 12
Label1.FontBold = True
Label1.Move 0, 0, Frame1.Width, Frame1.Height
Label1.Caption = "voici ce que tu voulais : un label avec texte déroulant, non ?"
Timer1.Interval = 100
sens = -1
End Sub
Private Sub Timer1_Timer()
Label1.Move Label1.Left + (sens * 60)
If Label1.Left + Label1.Width <= Frame1.Width Then
sens = -sens
Exit Sub
End If
If sens > 0 And Label1.Left > 0 Then sens = -sens
End Sub
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 20 févr. 2007 à 23:02
bon j'ai modifié le mien pour mettre dans un sens puis dans l'autre.
je met que la fin, le début est identique.
'position début
i = max
'réglage de la vitesse
Timer1.Interval = 10
'c'est parti
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Static sens As Boolean
If sens Then
i = i + 1 If i > max Then i max: sens False
Else
i = i - 1 If i < -Lg Then i -Lg: sens True
End If
Label1.Left = i
End Sub