Vb

mimosa803 Messages postés 345 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 24 avril 2010 - 20 févr. 2007 à 21:21
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 20 févr. 2007 à 23:11
Je souhaite avoir la propriété qui permet de glisser le texte d'une Labelle


 

30 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
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

End Sub


Private Sub Timer1_Timer()

    i = i - 15

    If i < -Lg Then i = max

    Label1.Left = i

End Sub

Daniel
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
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 #
0
mimosa803 Messages postés 345 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 24 avril 2010
20 févr. 2007 à 22:36
merci pour votre aide
0
mimosa803 Messages postés 345 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 24 avril 2010
20 févr. 2007 à 22:38
merci pour votre aide je vai essayer de traduire
0

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

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
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

 Lance... vois... et adapte à ton cas.
0
mimosa803 Messages postés 345 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 24 avril 2010
20 févr. 2007 à 22:52
oui c ca mais à l'exécution le label reste petit malgres que jai changé la taille en plus si je ve répeter l'evenement je fais une boucle
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
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


 
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
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

Daniel
0
mimosa803 Messages postés 345 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 24 avril 2010
20 févr. 2007 à 23:04
oui c'est ca vraiment grand merci
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
20 févr. 2007 à 23:11
si tu change la taille de la forme en cours de route,
if faut mettre  max = Me.ScaleWidth dans le Timer

Daniel
0
Rejoignez-nous