Texte défilant sans limitation ?

Signaler
Messages postés
31
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
8 octobre 2009
-
Messages postés
792
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
-
Bonjour à tous, Je code en VB6.



Je souhaiterais faire défiler un texte provenant d'une fichier (txt),
pouvant évolué, le simplement du monde dans un label ou un textbox,
sans boucle.



Je suis limité dans le nombre de carractère malgré l'option WordWrap sur True.



Avez-vous une idée ?

4 réponses

Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Sans boucle ?

Quel intérêt ?

Tu peux toujours utiliser un objet Webbrowser, et coder une page HTML en local avec le tag <marquee>

Toi, tu n'auras pas inséré de boucle dans ton code, mais bon ... c'est ton webbrowser qui en utilise une à ton insu.

Manu
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Oups, j'ai oublié qu'en utilisant un Timer, il n'y avait pas de boucle ...





Private Sub Timer1_Timer()

sTemp = Label1.Caption

Label1.Caption = Right$(sTemp) & Left$(sTemp,Len(sTemp)-1)

End Sub




avec, au préalable, Label1.Caption = "ton texte "






Manu
Messages postés
31
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
8 octobre 2009

Merci manu pour ta réponse.

Je dois faire tourner cette appli sur des toutes petites configuration,
le fait de mettre une boucle me déclanche une suractivité du CPU et de
fait du ventilateur, c'est peut être idiot à dire, mais plusieurs PC
dont le bruit du ventilateur se décuple, cela deviens vite intenable.



De toute façon , ton code ne fonctionne pas.



Je vais errer parmis les kilometres de code disponible sur le net, je finirais bien par trouver mon bonheur.



+++++
Messages postés
792
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
5
Salut 237896 by2k, salut =100635 econs,

c'est vrai qu'il ne marche pas, mais bon, tu codes en VB? Il manque juste un 1 dans l'appel de right ! Moi, personnellement, je salue la sobriété efficace de la réponse !

Pour ceux qui ne codent pas tous les jours en VB, ça donnerais :
Label1.Caption = Right$(sTemp ,1 ) & Left$(sTemp,Len(sTemp)-1)
on peut tous en prendre de la graine, car ton défi n'est pas simple (1%CPU, 16Ko, pas de boucle).

Ensuite, on peut le transposer à ton fichier texte assez facilement, mais tu codes vraiment en VB? Bon ben sinon (3%CPU, 56Ko, pas de boucle), toujours avec un label et un timer sur ton formulaire, colles ce code :

Private intNoFile As Integer


Private Sub Form_Load()
'ouverture du fichier, en binaire, lecture par caractère
intNoFile = FreeFile
Open App.Path & "\fichier.txt" For Binary As #intNoFile
'reglage du formulaire et de ses composants
With Me
.Caption = ""
.Width = 3015
.Height = 330 * 2
'l'étiquette
With .Label1
.Caption = String(20, " ")
.Left = 0
.Top = 0
.Width = 3015
.Height = 330
.FontName = "Courier"
.FontSize = 12
.FontBold = True
End With
'le timer
With .Timer1
.Interval = 150
.Enabled = True
End With
End With
End Sub


Private Sub Form_Unload(Cancel As Integer)
'fermeture du fichier
Close #intNoFile
End Sub


Private Sub Timer1_Timer()
Dim charTemp As Byte
'tampon de traitement de texte
sTemp = Label1.Caption
'si le fichier n'est pas fini
If Not EOF(intNoFile) Then
'lit un caractère
Get #intNoFile, , charTemp
'dépolue
charTemp = Replace(charTemp, vbCr, " ")
charTemp = Replace(charTemp, vbLf, " ")
'sinon, si le fichier est fini
Else
'termine aux espaces
charTemp = Asc(" ")
'fin si le fichier est fini ou non
End If
'décalage à gauche, plus facile pour le français :)
Label1.Caption = Right$(sTemp, Len(sTemp) - 1) & Chr(charTemp)
End Sub

Alors?
à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>