DragFiles()

Syntax

Ergebnis = DragFiles(Dateien$ [, Aktionen])
Beschreibung
Startet eine Drag & Drop Operation mit einer Liste von Dateinamen.

Parameter

Dateien$ Eine Liste der zu "ziehenden" (englisch "to drag") Dateinamen oder Verzeichnisse. Mehrere Dateinamen sollten mit einem Chr(10) (Zeilenvorschub) Zeichen getrennt werden. Jeder Dateiname muss seinen vollen Pfad beinhalten, da die Ziel-Applikation nicht weiß, wie sie relative Namen auflösen soll. Die Dateinamen müssen auf existierende Dateien verweisen, sodass die Ziel-Applikation auf sie zugreifen kann.
Aktionen (optional) Eine Kombination der Drag & Drop Aktionen, welche für die Dateien erlaubt sein sollen. Wenn der Parameter nicht angegeben wird, wird #PB_Drag_Copy die einzige erlaubte Aktion sein. Mögliche Aktionen sind: (sie können mittels '|' kombiniert werden)
  #PB_Drag_Copy: Die Dateien können kopiert werden
  #PB_Drag_Move: Die Dateien können verschoben werden
  #PB_Drag_Link: Die Dateien können verlinkt werden
Der Anwender kann durch Drücken der Zusatztasten wie 'Strg' oder 'Shift' entscheiden, welche dieser Aktionen verwendet werden soll. Die Aktionen, welche tatsächlich stattfinden können, richten sich auch nach den vom Zielobjekt (englisch "drop target") erlaubten Aktionen.
(Auf MacOSX werden die Aktionen nur als ein Vorschlag übergeben. Das Zielobjekt kann immer noch eine andere Aktion auswählen.)

Rückgabewert

Gibt einen der oben genannten Drag & Drop Aktions-Werte zurück, welche die vom Anwender genutzte Aktion anzeigen, oder #PB_Drag_None wenn der Anwender die Drag & Drop Operation abgebrochen hat.

Bitte beachten Sie, dass - anders als bei anderen Funktionen zum Starten von Drag & Drop - nichts unternommen werden sollte, wenn #PB_Drag_Move zurückgegeben wird. Da es sich bei den "gezogenen" Dateien nur um den Dateinamen und nicht um die Datei selbst handelt, muss jede auf die Datei anzuwendende Aktion vom Zielobjekt ausgeführt werden.

Anmerkungen

Drag & Drop kann grundsätzlich jederzeit gestartet werden, aber die linke Maustaste sollte aktuell gedrückt sein, da andernfalls die Operation umgehend und ohne Erfolg beendet wird. Der übliche Zeitpunkt zum Starten einer Drag & Drop Operation ist, wenn ein Gadget über EventType() ein Ereignis vom Typ #PB_EventType_DragStart zurückmeldet.

Beispiel

  ; Wählen Sie einige Dateien oder Ordner und ziehen Sie diese zu einer anderen Applikation
  ;
  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

Siehe auch

DragText(), DragImage(), DragPrivate(), DragOSFormats(), SetDragCallback()

Unterstützte OS

Windows, Linux

DragDrop Inhaltsverzeichnis - DragImage() ->