ryukat666
Messages postés20Date d'inscriptionmardi 12 septembre 2006StatutMembreDernière intervention 4 février 2008
-
31 mars 2007 à 02:11
ryukat666
Messages postés20Date d'inscriptionmardi 12 septembre 2006StatutMembreDerniè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
ryukat666
Messages postés20Date d'inscriptionmardi 12 septembre 2006StatutMembreDerniè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()
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
ryukat666
Messages postés20Date d'inscriptionmardi 12 septembre 2006StatutMembreDerniè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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
ryukat666
Messages postés20Date d'inscriptionmardi 12 septembre 2006StatutMembreDerniè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!
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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 !
ryukat666
Messages postés20Date d'inscriptionmardi 12 septembre 2006StatutMembreDerniè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...