OK , Bandit, je vais t'expliquer un peu, pour que tu commences à comprendre :
1) pour la 1ère partie :
Pourquoi, contre toute attente, avoir choisi le mousemove de la list2 et pas, comme on pourrait le penser le mouseup ?
Tout simplement parce que, une fois le bouton enfoncé dans list1, un mouseup serait considéré comme celui de la list1 au relâché.
Le mouseMove, alors ? hé hé ! à moins d'être un dieu de la statique ou un as du yoga, il n'est pas possible de faire un relaché en étant parfaitement immobile ! Il y a donc, qu'on le veuille ou non, un MouseMove qui va être généré![]()
2) pour la 2ème partie :
pourquoi diable utilliser le mouseMove de la list1 ? Ben... toujours pour les mêmes raisons : le bouton a commencé à être pressé en list1 et, tant qu'on ne l'a pas relaché, VB croit qu'on s'y trouve encore !
Il reste alors à faire un calcul arithmétique des positions relatives de list1 et list2, un autre calcul pour savoir où l'on se trouve exactement dans la list2 (positions du 1er article affiché et du dernier article affiché) et ... agir en conséquence. Les positions auront des valeurs négatives, la plupart du temps, mais, comme il s'agit de positions relatives, on s'en moque et le raisonnement est toujours bon.![]()
Voilà de quoi alimenter le mécanisme d'une compréhension, qui n'est certes pas aisée, je sais![]()
Tu découvriras vite que le développement, c'est surtout celà : une structure de la pensée avant même de se mettre au clavier ! sur 10 unités de temps de développement, il ne faut jamais hésiter à en consacrer 9 à l'organisation de la pensée et à n'en laisser qu'une seule à l'écriture du code correspondant (mais ne le répête à personne... SECRET !...)
Bon, maintenant que tu es satisfait : je te propose, quand j'en aurai le temps (semaine prochaine), de reprendre la philosophie même de ce machin-là ! On pourrait en effet faire mieux, en n'obligeant pas l'utilisateur à fatiguer son doigt à maintenir enfoncé le bouton central. Celà te tente ? dis-moi![]()
![]()
Partager