Remplacer avantageusement une scroll barre...

0/5 (2 avis)

Vue 6 297 fois - Téléchargée 449 fois

Description

HScrollLabel peut remplacer avantageusement une Scroll barre, il renvoie sa valeur indicative, ne prend pas beaucoup de place, est personnalisable et precis.
L'icone affichee sur le control indique la marche a suivre.
On peut adapter le principe a une liste ou d'autre types de contrôles (voir l'exemple HScrollListe).

Source / Exemple :


'DANS UN MODULE OU DANS LA FEUILLE :

Public dz As Integer, ez As Integer, fz As Integer, gz As Integer, hz As Integer, iz As Integer, jz As Integer

Public Sub HScrollLab(Obj As Object, Button As Integer, X As Single, MinVal As Integer, MaxVal As Integer, Sensibility As Integer)
Obj.MousePointer = 99
Obj.MouseIcon = Command1.Picture
If Button = 0 Then
hz = 0
End If
If Button = 1 And hz = 0 Then
    gz = X
    fz = Obj.Caption
    hz = 1
End If
If Button = 1 And hz = 1 Then
    a = CInt((X - gz) / Sensibility)
    b = fz + a
        If b >= MinVal And b <= MaxVal Then
        Obj.Caption = b
        End If
End If
End Sub

Public Sub HScrollList(Obj As Object, Id As Integer, Button As Integer, X As Single, MinVal As Integer, MaxVal As Integer, Sensibility As Integer)
Obj.MousePointer = 99
Obj.MouseIcon = Command1.Picture
If Button = 0 Then
hz = 0
End If
If Button = 1 And hz = 0 Then
    gz = X
    fz = Obj.List(Id)
    hz = 1
    iz = Id 'Iz verrouille la variation sur l'index de liste(Id)
    
End If
If Button = 1 And hz = 1 Then
    a = CInt((X - gz) / Sensibility)
    b = fz + a
        If b >= MinVal And b <= MaxVal Then
        Obj.List(iz) = b
        End If
Obj.Selected(iz) = True
End If
End Sub

'DANS UNE FEUILLE :

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Obj As Object, Button As Integer, X As Single, MinVal As Integer, MaxVal As Integer, Sensibility As Integer

Call HScrollLab(Label1, Button, X, 0, 127, 100)
End Sub

Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Obj As Object, Id As Integer, Button As Integer, X As Single, MinVal As Integer, MaxVal As Integer, Sensibility As Integer

Call HScrollList(List1, List1.ListIndex, Button, X, 0, 127, 100)
End Sub

Conclusion :


J'ai generaliser l'utilisation de ce control dans CORDE VIRTUELLE,
une application MIDI comportant d'innombrables parametres.
Les boutons tournant et autre curseurs ne sont tres ergonomiques.
www.cordevirtuelle.com
Did@cordevirtuelle.com

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
328
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
24 novembre 2005

lu,
j'aime bien ce code :-)
l idée est sympa je trouve aussi
8 too

fabrice
Messages postés
129
Date d'inscription
mercredi 24 septembre 2003
Statut
Membre
Dernière intervention
12 février 2009

Sympa, juste à préciser qu'il faut faire glisser la souris dans le sens des flèches du curseur...
Bon c'est vrai j'suis pas bien réveillé !!
je mets une note 8/10 pour l'idée...

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.