[VB6] Quelle est la syntaxe d'une Scrollbar?

Résolu
ryukat666 Messages postés 20 Date d'inscription mardi 12 septembre 2006 Statut Membre Dernière intervention 4 février 2008 - 31 mars 2007 à 02:11
ryukat666 Messages postés 20 Date d'inscription mardi 12 septembre 2006 Statut Membre Dernière intervention 4 février 2008 - 1 avril 2007 à 16:33
Bonjour, j'ai inséré une Scrollbar dans une Frame et je dois gérer le déplacement vertical des objets de la Frame (le rôle d'une Scrollbar quoi). J'ai essayé, à partir d'un code trouvé, de comprendre la syntaxe et la reproduire, mais au premier essai ça marche (avec 3 objets; lorsque la barre descend, mes objets remontent), mais à partir de 4 objets, ceux-ci suivent la barre, c'est à dire qu'ils descendent lorsque la barre descend. Comme je ne comprend pas du tout la manière de gérer le code, quelqu'un pourrait-il me donner un exemple avec les explications? Merci

8 réponses

ryukat666 Messages postés 20 Date d'inscription mardi 12 septembre 2006 Statut Membre Dernière intervention 4 février 2008
1 avril 2007 à 16:33
Merci mais en fait c'est bon, comme expliqué plus haut j'ai trouvé ce que je cherchais, au final ça donne ça:

Private Sub Form_Load()

'VS1 est ma Scrollbar, io = mon nombre d'objets dans la Frame, il est incrémenté à chaque enregistrement dans la base
    VS1.Min = 1
'Calcul de la taille totale jusqu'au dernier objet pour paramétrer la valeur Max de ma Scrollbar
    VS1.Max = (ligne du bas de mon objet(io - 1).Y1 + Frame.Top) - (Frame.Top + Frame.Height) + 500
    VS1.SmallChange = 100
    VS1.LargeChange = 500

End Sub
_____________________________________________________________________________________'vs valeur de VS1.Value avant incrémentation, par défaut 1, i objet à modifier
Private Sub VS1_Change()
        
For i = 1 To io - 1

    objet(i).Top = objet(i).Top - (vs - VS1.Value)
   
Next i

vs = VS1.Value

End Sub
______________________________________________________
Private Sub VS1_Scroll()
        
For i = 1 To io - 1

    objet(i).Top = objet(i).Top + (vs - VS1.Value)
   
Next i

vso = VS1.Value

End Sub
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
1 avril 2007 à 15:01
Si tu as plusieurs contrôles sur un Frame (ou Picturebox) et que tu bouges ce Frame, en mode Design, tous les contrôles bougeront ensemble. C'est une des possibilités d'un conteneur.

Partant de ça, imagine un Frame2 (contenant des contrôles) dans un autre Frame1. Si tu bouges Frame2 , tous les contrôles à l'intérieur de celui-ci bougeront avec lui.

Tu n'auras donc qu'un seul contrôle à bouger dans l'événement du ScrollBar.
La seule chose qui reste à faire, c'est de jouer avec la grandeur du Frame2 pour que ses bordures n'apparaissent pas lors du déplacement.

MPi
1
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
31 mars 2007 à 02:42
Salut
Des explications sur un code qu'on ne connait pas, ça va être dur, même avec une boulme de cristal dernier cri !
Il existe des tas d'exemple de codes sur vbfrance : Recherche "frame scrollbar" dans la recherche

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
ryukat666 Messages postés 20 Date d'inscription mardi 12 septembre 2006 Statut Membre Dernière intervention 4 février 2008
31 mars 2007 à 14:58
En fait je voulais le mettre, mais je me suis rendue compte que je ne comprenais même plus ce que j'avais écrit -_-'  Mais ce que je demande c'est simplement une explication sur les scrollbar avec un exemple d'objet dans une Frame fixe, par par rapport à mon code. Ca je me débrouillerais après pour l'adapter. 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ryukat666 Messages postés 20 Date d'inscription mardi 12 septembre 2006 Statut Membre Dernière intervention 4 février 2008
31 mars 2007 à 15:13
J'ai trouvé ce code (pour débutant):

Private Sub Form_Load()
VScroll1.Max = 1000
VScroll1.Min = 1
VScroll1.Value = 1
dec = CLng((Frame1.Height - Me.Height) / VScroll1.Max)
End Sub



Private Sub VScroll1_Scroll()
Frame1.Top = -VScroll1.Value * dec
End Sub




J'ai essayé de modifier pour que seuls les objets à l'intérieur de la Frame bougent, mais là même problème, ils suivent la barre au lieu d'aller dans le sens inverse.

Private Sub Form_Load()
VScroll1.Max = 1000
VScroll1.Min = 0
VScroll1.Value = 1
dec = CLng((Label1.Height - Frame1.Height) / VScroll1.Max)
End Sub



Private Sub VScroll1_Scroll()
Label1.Top = VScroll1.Value * dec
Label2.Top = VScroll1.Value * dec
Label3.Top = VScroll1.Value * dec
End Sub



Je n'y comprend absolument rien et il n'y a aucune explication avec ce code!
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
31 mars 2007 à 20:54
Et que te manque-t-il donc comme commentaires avec un code aussi "parlant" ?
max, min et value sont des propriétés d'une scrollbar et... ma foi ... min est la valeur minimum, max la valeur maximim et Value la valeur en cours !...

Je dois avouer que ta question me laisse personnellement plutôt interloqué !

Une suggestion, donc : ouvrir ton aide en ligne et lire un peu...

Quant à la propriété top de "positionnement" d'un contrôle, quand-même ... tu n'attends(j'espère que non) tout  de même pas qu'on t'expose ici ce que c'est et que t'expose parfaitement l'aide en ligne ...?

Et tout le reste est donc évident : in modifie la propriété top an fonction de la valeuir de la scrollbar !...
Tu voulias des commentaires pour dire celà ???... et bien ! voilà ! ils sont faits !
0
ryukat666 Messages postés 20 Date d'inscription mardi 12 septembre 2006 Statut Membre Dernière intervention 4 février 2008
1 avril 2007 à 02:38
Oui, enfin pour quelqu'un maitrisant les scrollbars, c'est parlant, pour moi pas du tout. La seule question que je posais, c'était de savoir comment fonctionnait ce code, et donc comment déplacer les objets, comment ça se passait par rapport à Value et compagnie, en fonction de quoi c'était pris en compte.
Au final, j'ai trouvé un site en anglais (parce que msdn, merci mais il faudrait déja le posséder, et le site internet est nul, du microsoft quoi) avec un code bien plus simple que tout ce que j'ai pu voir jusqu'à maintenant, et n'ayant absolument rien à voir avec ça, et grâce auquel j'ai enfin pu comprendre comment fonctionne une Scrollbar, parce que ce ne sont pas vos remarques qui m'ont fait avancer, désolée de dire ça...
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
1 avril 2007 à 02:54
Beh faut le télécharger, MSDN est gratuit, et en français...

ICI

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
Rejoignez-nous