Scroller digital avec capot en verre + reflet. façon winamp

Soyez le premier à donner votre avis sur cette source.

Vue 5 636 fois - Téléchargée 876 fois

Description

Cet ActiveX est un scroller façon "WinAmp" avec un capot et son reflet de lumière. J?utilise les API au niveau graphique et j?ai fait quelques relectures afin d?optimiser le tout. Ce qui en fait un control peut gourmand en utilisation de la CPU. Utilisation a peine visible quand le temps de rafraîchissement est au dessus de 40 millisecondes, ce qui est, je pense, pas trop mal aux vues des résultats.
Bref, Lisez bien la petite notice dans l?exemple.

Conclusion :


Très simple à utiliser :
La propriété "Text" : Pour indiquer le texte à afficher.
Exemple : DigitalScroller1.Text = Ucase("Codes-sources est un site genial")
J?utilise "Ucase(?)" car je n?ai pas encore créé les minuscules.

La fonction "Scrolling" : Pour démarrer le scrolling
4 paramètres dont les 3 derniers Optionnels
Exemple : DigitalScroller1.Scrolling True, 1, 40, 1500 : On démarre le scrolling, 1 pixel de décalage à chaque rafraîchissement, rafraîchissement toute les 40 millisecondes, on attend 1,5 seconde en bout de message avant de défiler dans l?autre sens.

Voila tout est dit.
Bonne prog à Toutes et à Tous.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

WariorProg
Messages postés
18
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
15 décembre 2013
-
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
-
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
-
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
-
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
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
29 -
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é)
++

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.