Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Question sur DnD

1 réponse
Avatar
Sam
Bonjour,

Je ne suis pas un grand fan du Drag'n'Frop (ou glisser/déposer pour ceux
qui n'aiment pas l'anglais), mais quelquefois c'est incontournable.

J'ai un soucis un peu compliqué... j'ai développé une sorte
d'explorateur avec une arborescence à gauche des un champ table pour
voir les documents et dossiers. Ceci correspond à des éléments renvoyés
par une API, rien à voir avec des fichiers réels, je ne réinvente pas la
roue ;) J'ai programme des DnD là dedans, ça fonctionne très bien.

La base de cet "explorateur", c'est une fenêtre interne = réutilisable.

Maintenant je souhaite faire la même chose, mais avec une fenêtre soeur
qui affiche aussi une arborescence basée sur la même fenêtre interne.
Mais je souhaite faire des DnD entre les deux fenêtres (en plus du DnD
déjà en place).

La fenêtre cible n'est pas toujours la fenêtre source... donc si le DnD
se fait entre les deux fenêtres, je dois gérer ça dans l'évènement
dndFinGlisser (pour faire un refresh par exemple de la source).

Problème : si la cible récupère pas mal d'infos sur la source, l'inverse
n'est pas vrai. L'évènement dndFinGlisser de la source se déclenchera
toujours, que le DnD ai donné lieu à quelque chose de concret, ou qu'il
ai été abandonné (lâché n'importe où), mais pas moyen de savoir ce qui
s'est passé côté source. Or j'aimerais que la cible puisse notifier la
source que quelque chose s'est passé (histoire de ne pas faire de
refresh pour rien... et un début de dnd involontaire ça va vite dès
qu'on clique !). Si possible sans mettre de nom de fenête ou je ne sais
quoi en dur, parce-que si j'utilise une fenêtre interne, c'est justement
parce-que ça va arriver dans pas mal de contextes différents. Pareil
pour l'usage de variables globales... je cherche à faire quelque chose
de très propre et aussi indépendant du contexte que possible.

Merci.
Sam.

1 réponse

Avatar
Sam
J'ai oublié de mettre la version... toutes mes excuses.
C'est avec Windev 12.