cs_Fraggy
Messages postés95Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 2 juin 2010
-
30 mai 2007 à 09:54
cs_Fraggy
Messages postés95Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 2 juin 2010
-
30 mai 2007 à 20:41
Bonjour à tous,
Pour les besoins d'un projet perso, j'ai un lecteur multi-format.
Pour jouer les fichiers, y a pas de problème, mais je calle sur la barre de positionnement.
J'ai donc une progressbar (standart, pour le moment) et je souhaiterais faire ceci :
1) La progressbar suive le positionnement du fichier joué
2) Lors d'un click sur la progressbar, le fichier lu va à la position cliquée.
Les variables utilisée sont :
- DSControle.Duration
- DSControle.CurrentPosition
Je remercie d'avance, toute personne qui m'apportera son aide, ses lumières ou même un début de piste quand à la manière de calculer cela.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 30 mai 2007 à 10:51
Simple règle de trois
j'imagine que ton progressBar1.Max est bien initialisé (à DSControle.Duration)
reste a affecter DSControle.CurrentPosition, au lieu du Me.Caption dans mon code exemple.
dans ton MouseDown, ET dans ton MouseMove (si bouton pressé), fais ce genre de choses :
Private Sub ProgressBar1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbLeftButton Then
ChangeMediaPos x
End If
End Sub<hr />
Private Sub ProgressBar1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbLeftButton Then
ChangeMediaPos x
End If
End Sub<hr />
Private Sub ChangeMediaPos(ByVal x As Single)
Dim nValue As Single
With ProgressBar1
nValue = x * .Max / .Width
If nValue > .Max Then
.Value = .Max
ElseIf nValue < .Min Then
.Value = .Min
Else
.Value = nValue
End If
Me.Caption = .Value
End With
End Sub , ----
By Renfield
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 30 mai 2007 à 10:55
on pourrait aller encore plus loin en s'assurant que la progressbar a un longueur non nulle.
de plus, on pourrias prendre en compte dans le calcul, la taille des marges du controle ProgressBar...
cs_Fraggy
Messages postés95Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 2 juin 2010 30 mai 2007 à 11:14
J'ai pris le projet avec moi au boulot, mais impossible de travailler dessus, car il semblerait que le TreeView possède une licence (non trouvée sur la machine du boulot)
et donc impossible à tester ici.
Je regarde ca ce soir en rentrant, et je te fais savoir si ca marche ou pas ;-)
De toute manière, et comme d'habitude, merci Renfield ^^
cs_Fraggy
Messages postés95Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 2 juin 2010 30 mai 2007 à 20:41
Je confirme, la solution de Renfield fonctionne !
Il reste plus qu'a mettre un petit bouton et on aura une vraie-fausse barre de progression, de la lecture du fichier joué. Merci pour les solutions données.