Exemple de constitution d'une playliste par drag'n'drop
Publié : ven. 02/sept./2016 8:05
Comme c'est dans les sujets du moments
Petit exemple rapide pour les débutants (les anciens connaissent déjà)
Il y a 3 types d'objets pouvant être utilisées en d&d
- Fichiers (sous-entendu: noms de fichiers avec chemin complet)
- Images
- Bloc de texte.
Ci-dessous un exemple pour ajouter des noms de fichiers dans une liste.
C'est l'utilisation la plus simple du système, seulement 2 étapes:
Pour les autres possibilités: voir l'exemple donné dans l'aide
http://www.purebasic.com/french/documen ... index.html


Petit exemple rapide pour les débutants (les anciens connaissent déjà)
Il y a 3 types d'objets pouvant être utilisées en d&d
- Fichiers (sous-entendu: noms de fichiers avec chemin complet)
- Images
- Bloc de texte.
Ci-dessous un exemple pour ajouter des noms de fichiers dans une liste.
C'est l'utilisation la plus simple du système, seulement 2 étapes:
- Déterminer la "cible" et ce qu'elle peut recevoir avec EnableGadgetDrop()
- Utiliser l'élément reçu: EventDropFiles()
Code : Tout sélectionner
; Exemple ultra simplifié pour constituer une liste
; de noms de fichiers par drag'n'drop (depuis un programme externe)
; Utile par exemple pour constituer une playliste
Enumeration
#Win
#List_Files
EndEnumeration
OpenWindow(#Win, 0, 0, 600, 400, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListViewGadget(#List_Files, 10, 10, 580, 380)
; Autoriser le gadget #List_Files à recevoir des fichiers depuis une fenêtre externe
; (Explorateur de fichier, Bureau, ou tout autre gestionnaire de fichiers)
EnableGadgetDrop(#List_Files, #PB_Drop_Files, #PB_Drag_Copy)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_GadgetDrop
If EventGadget() = #List_Files
AddGadgetItem(#List_Files, -1, EventDropFiles())
EndIf
EndSelect
ForEver
End
; EventDropFiles() retourne le chemin complet de chaque fichier
; Utiliser GetFilePart() et autres pour en faire des chemins relatifs
http://www.purebasic.com/french/documen ... index.html
