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és
L'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

DragDrop Index - DragImage() ->