SCROLLER DIGITAL AVEC CAPOT EN VERRE + REFLET. FAÇON WINAMP
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
17 juin 2007 à 07:19
WariorProg
Messages postés18Date d'inscriptiondimanche 9 mai 2004StatutMembreDernière intervention15 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.
WariorProg
Messages postés18Date d'inscriptiondimanche 9 mai 2004StatutMembreDernière intervention15 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
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és11Date d'inscriptionsamedi 25 avril 2009StatutMembreDernière intervention16 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és66Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention29 septembre 2008 2 juil. 2007 à 16:43
Salut,
peut on avoir une aide sur la Function MakeReflet ?
Merci
WariorProg
Messages postés18Date d'inscriptiondimanche 9 mai 2004StatutMembreDernière intervention15 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és13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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és13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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 ;)
10 juil. 2009 à 16:44
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
28 juin 2009 à 13:54
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é...
2 juil. 2007 à 16:43
peut on avoir une aide sur la Function MakeReflet ?
Merci
18 juin 2007 à 11:38
Merci encore.
Bonne Prog.
WariorProg
17 juin 2007 à 07:22
et ne pas lancer le scroll dans l'init
revois également ton propbag qui ici ne conserve pas les params (pas appelé/utilisé)
++
17 juin 2007 à 07:19
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]