VBA - Userform - MouseMove - VB/VBA/VBS - Programmation
Marsh Posté le 17-11-2007 à 10:34:55
Je ne crois pas que l'on puisse limiter une variable numérique lors de sa déclaration en VBA (mais je crois qu'on peut le faire en Cobol dans une certaine mesure).
J'ai rencontré le même problème de coordonnées de la souris, qui ne sont pas continues. Parfois, cela peut effectivement passer d'un bout à l'autre de l'écran sans que Windows ne récupère toutes les points intermdiaires.
La solution généralement adoptée est d'utiliser les API nommées SetCapture() et ReleaseCapture().
Bon courage !
Marsh Posté le 17-11-2007 à 14:06:52
plutot que de faire un exit sub, tu peux faire un if image.left>10 then image.left=10
Je pense que ça doit passer, ça, non ?
Marsh Posté le 18-11-2007 à 00:08:07
Non, le problème ne vient pas de la procédure mais de la lenteur d'exécution.
Si je vais lentement tout va bien si je vais trop vite l'image dépasse de quelques px (en fonction de la vitesse)...
Marsh Posté le 06-03-2008 à 12:17:50
Salut, j'ai moi une question plus bête, je n'ai pas accès aux fonctions _MouseMove() que ce soit sur mes forms, labels, buttons...
J'ai du rater une reference/bibliothèque, quelqu'un pour m'aiguiller?
Merci.
Marsh Posté le 08-03-2008 à 12:55:48
Quand l'image est déplacée trop loin, que se passe t-il ? Une erreur ? Dans ce cas, tu peux peut être récupérer une bonne position d'image en jouant avec le gestionnaire d'erreur et la fonction err.number ?
Marsh Posté le 25-03-2008 à 22:10:33
Hey, merci pour ta réponse.
Le problème résidait dans mon utilisation de MouseMove()
Avant :
Code :
|
Après :
Code :
|
Et la ça marche.
Oui, je sais, c'était pas bien compliqué mais ça m'a fait ch** quelques heures (je suis pas informaticien moi)
Marsh Posté le 16-11-2007 à 18:50:16
Mes amis,
j'ai mis dans un userform une image qui peut être déplacée par l'utilisateur via une procédure :
private sub image_MouseMove(...)
pour empécher qu'on ne déplace rop l'image, j'écris :
if image.left>10 then exit sub
sauf que si on la déplace super vite, on peut l'amener au-delà de 10...
Je pense que comme mousemove se répète en permanence tant qu'on manipule l'image, le rafraichissement est un peu longuet et on peut le prendre de vitesse.
Je me disais donc que je pourrais créer un double et le limiter dès le départ :
dim Lft as double...
et je crois qu'on peut effectivement limiter une variable numérique lors de sa déclaration... non ?
Vous avez 1/4 d'heure !
Merci