DragFiles()
Syntaxe
Resultat = DragFiles(Fichiers$ [, Actions])Description
Lance une opération de 'Drag & Drop' en utilisant une liste de fichiers.
Arguments
Fichiers$ La liste des noms de fichiers ou de répertoires à transférer.
Les noms doivent être séparés par le caractère Chr(10) (fin de ligne).
Chaque nom de fichier doit contenir son chemin absolu, car l'application qui recevra ces données ne sera pas capable de résoudre les chemins relatifs.
Ces noms de fichiers doivent se référer à des fichiers existants, accessibles par l'application cible.Actions (optionnel) Si ce paramètre est omis, #PB_Drag_Copy sera utilisé comme valeur par défaut.
Peut être une combinaison de:#PB_Drag_Copy: Les fichiers peuvent être copiés #PB_Drag_Move: Les fichiers peuvent être déplacés #PB_Drag_Link: Les fichiers peuvent être liésL'utilisateur peut décider de l'action à prendre en utilisant les touches Ctrl ou Shift. Les actions disponibles dépendent aussi du composant sur lequel le texte va être déposé. (Sous MacOSX, les actions ne sont traitées que comme une suggestion. La cible de dépôt peut encore choisir une autre action.)
Valeur de retour
Renvoie une des valeurs 'Actions' pour indiquer laquelle a été choisie par l'utilisateur, ou #PB_Drag_None si le 'Drag & Drop' a été annulé.
Note: contrairement aux autres fonctions de 'Drag & Drop', aucune action n'est à prendre lorsque #PB_Drag_Move est renvoyé. Comme les données déposées ne sont que le nom du fichier et pas le fichier lui-même, toutes actions entreprises sur le fichier seront faites par l'application cible.
Remarques
Un 'Drag & Drop' peut être démarré n'importe quand, mais il faut que le bouton gauche de la souris soit appuyé sinon l'opération se terminera immédiatement. Le moment le plus approprié pour lancer un 'Drag & Drop' est en réponse à un évènement sur un Gadget avec un EventType() valant #PB_EventType_DragStart.
Exemple
; Sélectionnez quelques fichiers ou dossiers et glissez-les dans une autre application ; If OpenWindow(1, 200, 200, 400, 400, "Drag & Drop", #PB_Window_SystemMenu) ExplorerListGadget(1, 10, 10, 380, 380, "*", #PB_Explorer_MultiSelect) Repeat Event = WaitWindowEvent() If Event = #PB_Event_Gadget And EventGadget() = 1 And EventType() = #PB_EventType_DragStart Files$ = "" For i = 0 To CountGadgetItems(1)-1 If GetGadgetItemState(1, i) & #PB_Explorer_Selected Files$ + GetGadgetText(1) + GetGadgetItemText(1, i) + Chr(10) EndIf Next i DragFiles(Files$) EndIf Until Event = #PB_Event_CloseWindow EndIf
Voir aussi
DragText(), DragImage(), DragPrivate(), DragOSFormats(), SetDragCallback()
OS Supportés
Windows, Linux