|
|
|
|
|
- Présentation
- Exemple de Drag and Drop entre un champ Liste et un champ Bouton
- Exemple de Drag and Drop entre un champ Arbre et un champ Table hiérarchique
WINDEV : Exemple de Drag and Drop programmé
Cette page d'aide présente deux exemples de Drag and Drop programmé réalisés dans une application WINDEV : Exemple de Drag and Drop entre un champ Liste et un champ Bouton Le code suivant permet de supprimer des données contenues dans un champ Liste par couper/coller ("Drag and Drop") vers un bouton graphique contenant une poubelle. Seul le déplacement (couper/coller) est autorisé. Le curseur de déplacement est affiché lors du déplacement (couper/coller) entre le champ Liste et le bouton "Poubelle". - Définition de la source : le champ Liste
//- - Initialisation du champ Liste LISTE_Liste.DndSource = dndProgrammé - Définition de la cible : le bouton BTN_Poubelle. Dans le code d'initialisation du bouton, les procédures de gestion du Drag and Drop sont également appelées grâce à la fonction DndEvénement.
Dans cet exemple : - l'événement dndSurvol permet de changer le curseur de la souris (procédure "SurSurvol").
- l'événement dndLâcher permet de programmer le traitement de gestion du lâcher. Dans notre cas, ce traitement correspond à la suppression de l'élément du champ Liste (procédure "SurLâcher").
//- - Initialisation bouton BTN_Poubelle BTN_Poubelle.DndCible = dndProgrammé  // Appel de la procédure SurLâcher lorsque le bouton gauche // de la souris est relâché sur le bouton BTN_Poubelle DnDEvénement("SurLâcher", BTN_Poubelle, dndLâcher)  // Appel de la procédure SurSurvol lorsque le curseur de la souris // se déplace entre la liste source et le bouton BTN_Poubelle DnDEvénement("SurSurvol", BTN_Poubelle, dndSurvol) - Définition des procédures :
PROCÉDURE SurSurvol() // Curseur indiquant le déplacement DnDCurseur(dndDéplacer)
PROCÉDURE SurLâcher() // Seul le déplacement est autorisé (pas le copier) DnDAccepte(dndDéplacer) // Suppression de l'élément dans le champ source ListeSupprime(_DND.ChampSource)
Exemple de Drag and Drop entre un champ Arbre et un champ Table hiérarchique La fenêtre contient : - un champ Arbre par programmation.
- un champ Table hiérarchique par programmation.
L'exemple suivant permet de déplacer un élément d'un champ Arbre (ou une branche et ses fils) dans un champ Table hiérarchique. Les deux méthodes de Drag and Drop programmé sont présentées. Méthode 1: Mode programmé complet - Définition du champ source : le champ Arbre :
// -- Code Initialisation champ ARBRE_MENU ArbreAjoute(ARBRE_MENU, "ENTREES") ArbreAjoute(ARBRE_MENU, "ENTREES" + TAB + "Crudités") ArbreAjoute(ARBRE_MENU, "ENTREES" + TAB + "Charcuterie") ArbreAjoute(ARBRE_MENU, "ENTREES" + TAB + "Avocats") ArbreAjoute(ARBRE_MENU, "PLATS") ArbreAjoute(ARBRE_MENU, "PLATS" + TAB + "Poulet curry") ArbreAjoute(ARBRE_MENU, "PLATS" + TAB + "Sole meunière") ArbreAjoute(ARBRE_MENU, "PLATS" + TAB + "Tagliatelle au saumon") ArbreAjoute(ARBRE_MENU, "PLATS" + TAB + "Tagliatelle carbonara") ArbreAjoute(ARBRE_MENU, "PLATS" + TAB + "Entrecôte") ArbreAjoute(ARBRE_MENU, "DESSERTS") ArbreAjoute(ARBRE_MENU, "DESSERTS" + TAB + "Crème brûlée") ArbreAjoute(ARBRE_MENU, "DESSERTS" + TAB + "Mousse chocolat") ArbreAjoute(ARBRE_MENU, "DESSERTS" + TAB + "Tiramisu") ArbreAjoute(ARBRE_MENU, "DESSERTS" + TAB + "Glace") ArbreAjoute(ARBRE_MENU, "DESSERTS" + TAB + "Tarte pomme")  // Activation du Drag and Drop programmé ARBRE_MENU.DndSource = dndProgrammé - Définition de la cible : le champ Table hiérarchique. Dans le code d'initialisation du champ Table hiérarchique, les procédures de gestion du Drag and Drop sont appelées grâce à la fonction DndEvénement.
Dans cet exemple : - l'événement dndSurvol permet de changer le curseur de la souris (procédure "pSurvol").
- l'événement dndLâcher permet de programmer le traitement de gestion du lâcher. Dans notre cas, ce traitement correspond à la copie des éléments du champ Arbre dans le champ Table hiérarchique (procédure "pLâcher").
// -- Initialisation du champ Table hiérarchique TABLEH_MENU.DndCible = dndProgrammé  DnDEvénement(pSurvol, TABLEH_MENU, dndSurvol) DnDEvénement(pLacher, TABLEH_MENU, dndLâcher)
- Définition des procédures :
PROCÉDURE pSurvol()  // Curseur indiquant le déplacement DnDCurseur(dndDéplacer)
PROCÉDURE pLacher()  // Seul le déplacement est autorisé (pas le copier) DnDAccepte(dndDéplacer)  sRacine est une chaîne sFeuille est une chaîne sElement est une chaîne sFils est une chaîne  sElement = ArbreSelect(ARBRE_MENU) sRacine = ExtraitChaîne(sElement, 1, TAB, DepuisDébut) sFeuille = ExtraitChaîne(sElement, 1, TAB, DepuisFin)  SI sFeuille = sRacine ALORS SI TableChercheFils(COL_ARBRE, sRacine) = -1 ALORS TableAjouteFils(TABLEH_MENU, 0, sRacine) FIN  sFils = ArbreRécupèreFils(ARBRE_MENU, sRacine, aPremier) TANTQUE sFils <> "" TableAjouteFils(TABLEH_MENU, sRacine, sFils) sFils = ArbreRécupèreFils(ARBRE_MENU, sRacine, aSuivant) FIN SINON SI TableChercheFils(COL_ARBRE, sRacine) = -1 ALORS TableAjouteFils(TABLEH_MENU, 0, sRacine) FIN TableAjouteFils(TABLEH_MENU, sRacine, sFeuille) FIN
Méthode 2: Mode programmé simplifié - Définition du champ source : le champ Arbre.
ArbreAjoute(ARBRE_MENU1, "ENTREES") ArbreAjoute(ARBRE_MENU1, "ENTREES" + TAB + "Crudités") ArbreAjoute(ARBRE_MENU1, "ENTREES" + TAB + "Charcuterie") ArbreAjoute(ARBRE_MENU1, "ENTREES" + TAB + "Avocats") ArbreAjoute(ARBRE_MENU1, "PLATS") ArbreAjoute(ARBRE_MENU1, "PLATS" + TAB + "Poulet curry") ArbreAjoute(ARBRE_MENU1, "PLATS" + TAB + "Sole meunière") ArbreAjoute(ARBRE_MENU1, "PLATS" + TAB + "Tagliatelle au saumon") ArbreAjoute(ARBRE_MENU1, "PLATS" + TAB + "Tagliatelle carbonara") ArbreAjoute(ARBRE_MENU1, "PLATS" + TAB + "Entrecôte") ArbreAjoute(ARBRE_MENU1, "DESSERTS") ArbreAjoute(ARBRE_MENU1, "DESSERTS" + TAB + "Crème brûlée") ArbreAjoute(ARBRE_MENU1, "DESSERTS" + TAB + "Mousse chocolat") ArbreAjoute(ARBRE_MENU1, "DESSERTS" + TAB + "Tiramisu") ArbreAjoute(ARBRE_MENU1, "DESSERTS" + TAB + "Glace") ArbreAjoute(ARBRE_MENU1, "DESSERTS" + TAB + "Tarte pomme") // Activation du Drag and Drop programmé ARBRE_MENU1..DndSource = dndProgrammé - Définition de la cible : Table hiérarchique
// -- Initialisation du champ Table hiérarchique TABLEH_MENU1.DndCible = dndProgrammé - Ajout des événements spécifiques au Drag and Drop dans le code du champ cible (code du champ Table hiérarchique).
- Affichez les événements du champ Table hiérarchique (option "Code" du menu contextuel du champ).
- Affichez la fenêtre des événements optionnels : cliquez sur le lien "Ajouter d'autres événements" situé à la fin des événements du champ.
- Dans notre exemple, les événements à ajouter sont :
- Survol en Glisser / Déplacer cible (dndSurvol).
- Lâcher en Glisser / Déplacer cible (dndLâcher).
- Saisissez le code correspondant aux actions à réaliser :
- Evénement Lâcher en Glisser / Déplacer cible (dndLâcher)
// Seul le déplacement est autorisé (pas le copier) DnDAccepte(dndDéplacer)  sRacine est une chaîne sFeuille est une chaîne sElement est une chaîne sFils est une chaîne  sElement = ArbreSelect(ARBRE_MENU1) sRacine = ExtraitChaîne(sElement, 1, TAB, DepuisDébut) sFeuille = ExtraitChaîne(sElement, 1, TAB, DepuisFin)  SI sFeuille = sRacine ALORS SI TableChercheFils(COL_ARBRE1, sRacine) = -1 ALORS TableAjouteFils(TABLEH_MENU1, 0, sRacine) FIN  sFils = ArbreRécupèreFils(ARBRE_MENU1, sRacine, aPremier) TANTQUE sFils <> "" TableAjouteFils(TABLEH_MENU1, sRacine, sFils) sFils = ArbreRécupèreFils(ARBRE_MENU1, sRacine, aSuivant) FIN SINON SI TableChercheFils(COL_ARBRE1, sRacine) = -1 ALORS TableAjouteFils(TABLEH_MENU1, 0, sRacine) FIN TableAjouteFils(TABLEH_MENU1, sRacine, sFeuille) FIN - Evénement Survol en Glisser / Déplacer cible (dndSurvol)
// Curseur indiquant le déplacement DnDCurseur(dndDéplacer)
Liste des exemples associés :
|
Exemples unitaires (WINDEV) : Drag and drop
[ + ] Utilisation du Drag & Drop (Glisser & Déposer) avec les fonctions WLangage. Dans cet exemple, nous abordons deux thèmes principaux : 1/ Comment gérer le Drag&Drop entre champs WINDEV 2/ Comment gérer le Drag&Drop de l'Explorateur de fichiers de Windows vers un champ WINDEV Le Drag & Drop permet de déplacer des objets par l'intermédiaire de la souris. Lorsqu'on clique sur un objet, puis qu'on déplace la souris tout en maintenant le bouton gauche enfoncé, il s'agit du "Drag". Lorsqu'on relâche le bouton gauche, il s'agit du "Drop". Le Drag & Drop est utilisable avec WINDEV sur les champs Liste, Arbre, Table et Image.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|