DragFiles()

Syntaxe

Resultat = DragFiles(Fichiers$ [, Actions])
Description
Lance une opération de 'Drag & Drop' en utilisant une liste de fichiers. 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.

Arguments

Fichiers$ est 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' peut être une combinaison des actions qui seront disponibles pour cette donnée lors de son transfert. Si ce paramètre est omis, #PB_Drag_Copy sera utilisé comme valeur par défaut. Les actions possibles sont: (combinables avec '|')
  #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é. (On MacOSX, the actions are only treated as a suggestion. The drop target can still choose another 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.

Exemple:

  ; Select some files or folders and drag them to another application
  ;
  If OpenWindow(1, 200, 200, 400, 400, "Drag & Drop", #PB_Window_SystemMenu)
    CreateGadgetList(WindowID(1))
    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

OS Supportés

Tous

DragDrop Index - DragImage() ->