PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Drag and drop
Drag and drop
Iniciado por mlion, 03,sep. 2014 18:06 - 3 respuestas
Miembro registrado
326 mensajes
Publicado el 03,septiembre 2014 - 18:06
Bonjour,

J'ai développé un "drag and drop" programmé d'une table mémoire à elle même.
De manière simple : cela permet de recopier une cellule de table dans une autre.
Tout fonctionne sauf un truc bête : quand on prend une cellule et qu'on veut la copier hors écran sur une cellule en bas de la table et bien l'ascenseur ne descend pas : on ne peut copier que des cellules visibles à l'écran !
Est-ce à dire qu'il faut que je gère la gestion de l'ascenseur ou y a t'il une option ou un paramétrage de la table à faire ?
Merci de m'éclairer si vous avez la réponse.

Michel.
Miembro registrado
326 mensajes
Publicado el 04,septiembre 2014 - 12:12
Bonjour,
En réponse à moi-même et our ceux que cela intéresse j'ai trouvé une solution qui peut dépanner.

J'ai cherché sur le forum, dans la documentation : rien à priori !
J'ai fait des tests sur tableposition, tableselectplus, tableaffiche en tentant de capter le mouvement de souris dans un intervalle de temps pour savoir dans quel sens va le curseur et positionner l'affichage sur la ligne + 1 ou -1 suivant qu'on monte ou descend -> "pas glop"
Et là bingo : intervalle de temps -> temporisation
Temporisation : multitache

Finalement : en mettant un multitache dans la procédure de survol (ici rend la main tous les 5 centièmes) on peut manipuler la roulette de la souris ce qui permet de se déplacer dans la table (dans mon cas je n'autorise la copie que dans une même colonne dans uniquement le contrôle sur la position de la ligne)

// donner la main pour la roulette de souris !
Multitâche(5)

x,y sont des entiers

//Récupération de la position de la souris
x = PoidsFaible(CurseurPos())
y = PoidsFort(CurseurPos())

//Coordonnées dans la table en fonction de la position de la souris
nLigne1 est un entier = TableInfoXY(MoiMême, tiNumLigne + tiOrigineEcran, x, y)
nColonne1 est un entier = TableInfoXY(MoiMême, tiNumColonne + tiOrigineEcran, x, y)

SI nLigne1 <> -1 ALORS
SI DnDDonnéeDisponible(CF_TEXT) = Vrai
DnDCurseur(dndDéplacer)
FIN
SINON
DnDCurseur(dndInterdit)
FIN


Cela peut être une piste pour d'autres objets utilisant le "drag and drop" hors limites fenêtre ...

Michel.
Publicado el 31,agosto 2018 - 15:24
Bonjour Mlion
je suis actuellement entrain de travaillé sur une application WINDEV et je galéré pour faire D&D d une cellule d'une table vers d autres cellules sélectionnées de la même table. en faisant des recherche je suis tombé sur ton poste. j aimerai voir comment tu as fait
merci
Publicado el 05,febrero 2020 - 08:48
Bonjour

Je sais que ton post n'est pas tout jeune,mais merci j'avais le meme probleme et je ne trouvais pas la solution
Merci pour ton post

Olivier