Danke noch und gute Nacht Duli
weiteres bei Drag und Drop
Habe dein Post gelsen ts-soft
Habe so viel wie möglich nun eingebebaut hier das Ergebniss.
Ich muss einen Fehler bei den Konstanten gemacht haben, aber ich erkenne nicht welchen könnt ihr mir hierbei helfen.
Dann könnte ich testen ob meine ID mit der Zeile mein gewünschtes Zielverzeichnis zurück bekomme.
Danke vielmals
Code: Alles auswählen
Zieldatei$ = GetGadgetItemText(#explorerfeld2, SourceItem, 0)Code: Alles auswählen
Enumeration ; hier kommen alle Windows rein
#Hauptfenster
EndEnumeration
Enumeration ; hier sind die gadgets
#explorerfeld1
#explorerfeld2
EndEnumeration
If OpenWindow(#Hauptfenster, 200, 200, 430, 400, "Drag & Drop", #PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
ExplorerListGadget(#explorerfeld1, 10, 10, 200, 380, "*", #PB_Explorer_MultiSelect)
ExplorerListGadget(#explorerfeld2, 210, 10, 200, 380, "*", #PB_Explorer_MultiSelect)
EnableGadgetDrop(#explorerfeld1, #PB_Drop_Files, #PB_Drag_Copy)
EnableGadgetDrop(#explorerfeld2, #PB_Drop_Files, #PB_Drag_Copy)
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$)
ElseIf event = #PB_Event_GadgetDrop
Zieldatei$ = GetGadgetItemText(#explorerfeld2, SourceItem, 0)
Debug Zieldatei$
Dateien.s = EventDropFiles(); den String mit den Dateinamen in Variable speichern
Anzahl = CountString(Dateien, Chr(10)) + 1; Anzahl ermitteln
ev = EventDropAction() ;hier wird zurückgegeben auf welche art gedropt werden soll
For I = 1 To Anzahl
If ev = #PB_Drag_Copy ;hier wird weiter gemacht wenn das Drag & Drop im EnableGadgetDrop mit Option Copy versehen ist.
CopyFile(StringField(Dateien, I, Chr(10)), Zieldatei$)
EndIf
If ev = #PB_Drag_Move ;hier wäre ein verschieben der Daten möglich zum Programmieren
EndIf
Next
EndIf
Until event = #PB_Event_CloseWindow
EndIf
Zuletzt geändert von duli am 08.06.2007 10:49, insgesamt 1-mal geändert.
Man kann nicht wissen was man nicht weiss..
Aber wenn ich da den d&d mache bekomme in in der Variable Zieldatei$ alles mögliche an werten aber nicht die vom Ziellaufwerk was mache ich hier falsch.
Ich habe im Beispiel oben bereits die koriegierte Variante reingemacht.
Man kann nicht wissen was man nicht weiss..
Hallo zusammen
hoffe das ich euch nicht zu sehr verwirre.
Im Folgenden Teil bekomme ich zwar den wert des Quell laufwerks aber ich bekomme einfach nicht den Wert des Zielverzeichnisses, uf.
hoffe das ich euch nicht zu sehr verwirre.
Im Folgenden Teil bekomme ich zwar den wert des Quell laufwerks aber ich bekomme einfach nicht den Wert des Zielverzeichnisses, uf.
Code: Alles auswählen
ElseIf event = #PB_Event_GadgetDrop
Zieldatei$ = GetGadgetText(#explorerfeld1)
Dateien.s = EventDropFiles(); den String mit den Dateinamen in Variable speichern
Anzahl = CountString(Dateien, Chr(10)) + 1; Anzahl ermitteln
ev = EventDropAction() ;hier wird zurückgegeben auf welche art gedropt werden soll
For I = 1 To Anzahl
If ev = #PB_Drag_Copy ;hier wird weiter gemacht wenn das Drag & Drop im EnableGadgetDrop mit Option Copy versehen ist.
Debug Zieldatei$ + "\" + StringField(Dateien, I, Chr(10))
CopyFile(StringField(Dateien, I, Chr(10)), Zieldatei$+ "\" + StringField(Dateien, I, Chr(10)))
EndIf
If ev = #PB_Drag_Move ;hier wäre ein verschieben der Daten möglich zum Programmieren
EndIf
Next
EndIfMan kann nicht wissen was man nicht weiss..
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
>> aber ich bekomme einfach nicht den Wert des Zielverzeichnisses
Hab mir den Code jetzt nicht angesehen, aber Du bekommt immer nur den
Wert der Quelldatei
, wohin mußte ja Wissen. Evtl. in das Verzeichnis
wo der Dropempfänger gerade hinzeigt
Hab mir den Code jetzt nicht angesehen, aber Du bekommt immer nur den
Wert der Quelldatei
wo der Dropempfänger gerade hinzeigt
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
>> sondern den wert von dem Verzeichniss
Das was gerade geöffnet ist, bei einem ExplorerListGadget mit
GetGadgetText()
Das was gerade geöffnet ist, bei einem ExplorerListGadget mit
GetGadgetText()
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Aber so weit ich das verstehe tue ich das ja, in der Abfrage wo der Drop gemacht wird frage ich nach dem Wert des ExplorerListGadget mit dem GetGadgetText() aber als antwort bekomme ich nur das resultat von dem Explorerlistgadget wo der drag begonnen wurde, obwohl es zu dem Zeitpunkt abgefragt wird wo ich gedropt habe. Die Frage wenn ich gedropt habe ist so wie ich es verstehe diese.
Oder verstehe ich diese Zeile Falsch
So wie ich es verstanden habe müsste ich hier all das abfrgen können was nach oder während des Drops geschieht.
Und somit müsste ja in den GetGadgetText() den richtigen Wert erhalten und nicht den Wert wo ich das Drag gestartet habe.
Aber vieleicht ist dass der Fehler in meinem Denken, nur wann ist der Moment oder wie kann ich abfragen nach den Werten wenn es so weit ist?
Oder verstehe ich diese Zeile Falsch
Code: Alles auswählen
ElseIf event = #PB_Event_GadgetDropUnd somit müsste ja in den GetGadgetText() den richtigen Wert erhalten und nicht den Wert wo ich das Drag gestartet habe.
Aber vieleicht ist dass der Fehler in meinem Denken, nur wann ist der Moment oder wie kann ich abfragen nach den Werten wenn es so weit ist?
Man kann nicht wissen was man nicht weiss..
Aber ich bekomme nur den Wert vom Gadget wo ich gedragt habe, also sprich die Taste gedrückt habe.
Habe es auch bewusst mit den Konstanten versucht das sie fest auf das Fenster stehen auf welches ich Dorpe, half auch nichts was kann ich machen, ich verzweifle nächstens
Man kann nicht wissen was man nicht weiss..