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

Messages postés
20
Date d'inscription
mardi 12 septembre 2006
Dernière intervention
4 février 2008
- - Dernière réponse : ryukat666
Messages postés
20
Date d'inscription
mardi 12 septembre 2006
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
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
20
Date d'inscription
mardi 12 septembre 2006
Dernière intervention
4 février 2008
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de ryukat666
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
1
Merci
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
Commenter la réponse de cs_MPi
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
0
Merci
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)
Commenter la réponse de cs_Jack
Messages postés
20
Date d'inscription
mardi 12 septembre 2006
Dernière intervention
4 février 2008
0
Merci
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. 
Commenter la réponse de ryukat666
Messages postés
20
Date d'inscription
mardi 12 septembre 2006
Dernière intervention
4 février 2008
0
Merci
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!
Commenter la réponse de ryukat666
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
0
Merci
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 !
Commenter la réponse de jmfmarques
Messages postés
20
Date d'inscription
mardi 12 septembre 2006
Dernière intervention
4 février 2008
0
Merci
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...
Commenter la réponse de ryukat666
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
0
Merci
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"
<!--
Commenter la réponse de mortalino

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.