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.
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
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...
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 ^^
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.