PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → [WD16] Déplacer une fenêtre
[WD16] Déplacer une fenêtre
Débuté par Bioley, 19 sep. 2011 08:54 - 7 réponses
Posté le 19 septembre 2011 - 08:54
Bonjour,

Je souhaiterais faire la fonction du "Déplacer par le fond" mais en cliquant sur un bouton. Plus précisément, quand je clic sur le bouton et que je le maintiens, la fenêtre suit le mouvement du curseur jusqu'à ce que je relâche mon clic gauche.

Avez-vous une idées des fonctions à utiliser pour ce genre de fonctionnement?

Meilleures salutations et merci d'avance du temps accordé pour me répondre.
Posté le 20 septembre 2011 - 18:28
Petit up
Membre enregistré
101 messages
Popularité : +7 (7 votes)
Posté le 20 septembre 2011 - 18:47
Salut,

C'est relativement simple.

Soit un bouton BTN_DEPLACE. Ajoutez les traitements "Bouton gauche enfoncé" et "Survol souris"

- Bouton gauche enfoncé
MoiMême..Note = CurseurPos(cpEcran)


- Survol souris
SI PAS ToucheEnfoncée(teBoutonG) ALORS RETOUR

nPosPrecedent est un entier = MoiMême..Note
nPosCourant est un entier = CurseurPos(cpEcran)
nDistX est un entier = PoidsFaible(nPosCourant) - PoidsFaible(nPosPrecedent)
nDistY est un entier = PoidsFort(nPosCourant) - PoidsFort(nPosPrecedent)

MaFenêtre..X += nDistX
MaFenêtre..Y += nDistY

MoiMême..Note = nPosCourant


Et voilà, en cliquant sur le bouton et en maintenant le bouton enfoncé tout en bougeant la souris, la fenêtre suivra !

@+
Maax°(51)°
Posté le 20 septembre 2011 - 22:25
Exactement ce que je recherchais. Je te remercie beaucoup pour le temps accordé!
Membre enregistré
54 messages
Popularité : +4 (4 votes)
Posté le 17 octobre 2016 - 15:05
Un grand merci !

--
Gilles
Membre enregistré
23 messages
Posté le 24 février 2017 - 07:44
Merci pour cette aide Max, mais je ne comprend toujours pas l'utilisation des fonctions poidsfort() et poidsfaible() pour x et y sachant qu'on peut utiliser sourisposx() et y .. L'aide sur ces deux fonctions n'en dit pas plus que le renvoi de deux octets de poids d'un entier ..

--
Amicalement, bon dev
<Ju'>
Message modifié, 24 février 2017 - 07:44
Posté le 24 février 2017 - 16:48
Effectivement, si on utilise Windev, on a à disposition les fonctions SourisPosx() et SourisPosY() , et on n'a aucune raison de passer par les fonctions PoidsFaible() et PoidsFort()

Pour les anciens, la position de la souris était stockée sur un entier. En entier long, avec plein de chiffres. Et dans un entier prévu pour stocker des nombres entre 0 et 99999999, on peut très bien convenir que les 4 premiers chiffres servent à stocker la position X, et les 4 derniers servent à stocker la position Y.
Ainsi, avec un seul entier, on stocke 2 choses. Economie, efficacité.
Exemple, si la souris est à l'emplacement 01230456, ça veut dire que X = 123 et Y = 456... facile.
Les 4 premiers bits se sont les bits de poids fort : 0123
Et les 4 derniers, les bits de poids faible : 0456

C'est simple (sauf que dans la réalité, on ne compte pas en base 10, mais en base 2, mais c'est un détail)

Ici, si PCSoft nous communiquait le code précis qu'il y a derrière les fonctions SourisPosX() et SourisPosY(), c'est sûr qu'ils passent par ces 2 fonctions PoidsFaible() et PoisdFort()...
Membre enregistré
54 messages
Popularité : +4 (4 votes)
Posté le 24 février 2017 - 17:03
Un grand merci.
J'ai tout compris !

--
Gilles