SCROLLER DIGITAL AVEC CAPOT EN VERRE + REFLET. FAÇON WINAMP

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 17 juin 2007 à 07:19
WariorProg Messages postés 18 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 15 décembre 2013 - 10 juil. 2009 à 16:44
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43147-scroller-digital-avec-capot-en-verre-reflet-facon-winamp

WariorProg Messages postés 18 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 15 décembre 2013
10 juil. 2009 à 16:44
je n'ai pas encore constaté ce probleme, alors je te remercie pour ta participation et je vais me pencher dessus, promis. si j'ai bien compris. Si on affiche un petit texte apres un grand, l'ocx ne scroll plus et se fige dans l'etat precedent. Je pense savoir d'ou viens le probleme alors dans la propriété Text du usercontrol, ajoute cette ligne:
If Valeur <> vNewValue Then Decallage = 0

juste dessous les 3 declaration Dim et ton probleme serat resolu.


Public Property Let Text(ByVal vNewValue As String)
Dim i As Integer
Dim Caractere As String
Dim CaractereNum As Integer

If Valeur <> vNewValue Then Decallage = 0

Valeur = vNewValue
RetVal = BitBlt(DcFond, 0, 0, PicFond.Width, PicFond.Height, PicFond.hdc, 0, 0, vbSrcCopy)

For i = 1 To (Len(Valeur))
CaractereNum = (Asc(Mid(Text, i, 1))) - 31
If CaractereNum -32 Then CaractereNum 32
Call DrawCaractere(CaractereNum - 1, i - 1, Decallage)
Next i
Call MakeReflet(PicReflet, DcFond)
RetVal = BitBlt(UserControl.hdc, 0, 0, PicFond.Width, PicFond.Height, DcFond, 0, 0, vbSrcCopy)

End Property
nono7380 Messages postés 11 Date d'inscription samedi 25 avril 2009 Statut Membre Dernière intervention 16 octobre 2010
28 juin 2009 à 13:54
Excellent!!
Mais par contre, j'utilise ton code pour afficher l'état d'un programme, et je me heutre à un petit hic.
> J'affiche un grand texte dans le scroller, ce qui fait que lui est obliger de faire défiller le texte de dr à ga et vice-versa.
Après je met un texte plus court, et le scroller ne revient pas au début mais reste callé à la position précédente, ce qui fait que le début du nouveau texte est non affiché...
bbcluny Messages postés 66 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 29 septembre 2008
2 juil. 2007 à 16:43
Salut,
peut on avoir une aide sur la Function MakeReflet ?
Merci
WariorProg Messages postés 18 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 15 décembre 2013
18 juin 2007 à 11:38
Merci pour toutes ces critiques pertinentes. Il est vrai qu'au départ, ce prog n'était pas destiné à être diffusé sur codes-Sources. Je l'ai fait en reprenant un ancien projet et en le modifiant pour en faire ce dont j'avait besoins. J'en tire une grande leçon : Rien ne sert de courir, il faut partir « à Zéro ». (Bien sur pour de petits projet comme celui-ci). Promis, je ferais une mise au propre des que possible.
Merci encore.
Bonne Prog.

WariorProg
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 juin 2007 à 07:22
voir également à ne pas mettre certaines variables publiques
et ne pas lancer le scroll dans l'init

revois également ton propbag qui ici ne conserve pas les params (pas appelé/utilisé)
++
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 juin 2007 à 07:19
salut,

interessant mais il y a quelques points à revoir.
le principal étant la gestion de DesignMode / ExecutionMode de manière à désactiver le timer.
là il devient impossible d'avoir l'aide contextuelle en IDE...
voir également le UCASE à traiter directement par l'UC.
et tant qu'à créer un DC, autant en faire autant pour te passer des 2 picturebox ;)

bon courage ++
PCPT [AFCK]
Rejoignez-nous