Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Drag & Drop: Zielordner auslesen (https://www.delphipraxis.net/132216-drag-drop-zielordner-auslesen.html)

martinf16 8. Apr 2009 02:53


Drag & Drop: Zielordner auslesen
 
Hallo,

ist es irgendwie möglich den Zielordner einer Drag and Drop Aktion zu bestimmen??

Das heißt ich habe in meinem Programm eine Liste von Dateien, diese können in den Explorer rübergezogen werden. Nun soll das Programm aber bevor das Verschieben geschieht eine Meldung darüber bekommen, wo die Dateien hingeschoben werden sollen, zum Beispiel um gegebenenfalls das Verschieben abzubrechen oder zu speichen wo die Dateien gelandet sind, um auch nach der Verschiebung mit ihnen weiterarbeiten zu können.

Vielen Dank schon einmal!!

RedOne 14. Mai 2013 15:08

AW: Drag & Drop: Zielordner auslesen
 
Ich weiss, dieser Beitrag ist schon etwas älter, aber es heisst doch, man solle die Suche benutzen ;-)
Deshalb versuche ich hier ein Steinzeitpush: Ich suche nämlich genau dies.

Problemstellung: Wir schicken gewisse Daten gezippt und verschlüsselt durch die Datenkrake. Für unsere Zwecke haben wir ein eigenes Zip-Programm geschrieben, mittels dem diese gezippt-verschlüsselten Dateien geöffnet werden können. Wie z.B. in WinRar möchte ich nun eine in einer Liste dargestellte Datei packen und in den Explorer verschieben. Diese Datei existiert zu diesem Zeitpunkt noch nicht auf dem Filesystem, sie muss zuerst entpackt werden. Deshalb bräuchte ich zum Zeitpunkt des Loslassens der Maustaste den Zielordner, damit ich den Entpackungsvorgang starten kann.

martinf16, hast Du da eine Lösung gefunden?

Herzlichen Dank an alle!

RedOne
Ps.: Dies funktioniert aus diesem Grund leider nicht.
http://swissdelphicenter.ch/de/showcode.php?id=2335

Luckie 15. Mai 2013 09:31

AW: Drag & Drop: Zielordner auslesen
 
Und warum nicht? Da steckt doch der Code drin, um den Ordner zu ermitteln. Und nur den brauchst du doch. Bzw. entpacke die Dateien doch vor dem Kopieren. Deinen Code da zusätzlich reinzupacken sollte nicht so schwer sein.

RedOne 15. Mai 2013 10:31

AW: Drag & Drop: Zielordner auslesen
 
Vielleicht verstehe ich den Code falsch. In der Funktion DoDragDrop wird angegeben, welches Sourcefile kopiert/verschoben werden soll. Das Kopieren wird aber vom Windows ausgeführt, der Zielordner wird von Windows ermittelt. So weiss ich nicht, welchen Ordner der Benutzer ausgewählt hat.

Ich lasse mich aber gerne belehren :)

Luckie 15. Mai 2013 10:58

AW: Drag & Drop: Zielordner auslesen
 
Ok, so genau hab eich mir den Code jetzt nicht angeguckt. Ich gucke heute Abend noch mal drüber.

RedOne 15. Mai 2013 12:24

AW: Drag & Drop: Zielordner auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich bedanke mich schon mal im Voraus.
Im Anhang liegt das Beispielprojekt.

Sougetsu 8. Nov 2013 22:01

AW: Drag & Drop: Zielordner auslesen
 
moin,

wollt mal hören ob das noch aktuell ist oder schon gelöst wurde.

ich hab zur zeit mit der selben schwierigkeit zu tun.

wäre toll wenn es eine api funktion oder ähnliches gibt den destination path des drop events zu bekommen.

LG
Sougetsu

Sougetsu 9. Nov 2013 13:16

AW: Drag & Drop: Zielordner auslesen
 
Moin,

ein anderer Ansatz müsste doch auch über das Handle gehen oder?
Drag auf der App starten und beim Drop auf dem Explorer Desktop/Ordner sich das Handle zu der SysListView32 mittels WindowFromPoint geben lassen.

Die Frage ist nur beinhaltet die ListView den FullPath.

Hab hier bisschen rumgeschaut wie man die syslistview ausliest, aber und Windows 8 x64 scheint es nicht mehr zu klappen wie es hier
in manchen Themen geschildert wird.

Auch hab ich in den LuckieDips Autorun nicht gefunden.

LG
Sougetsu

Sougetsu 16. Nov 2013 23:05

AW: Drag & Drop: Zielordner auslesen
 
Moin,

hab das hier grad auf MelanderBlog gefunden. http://melander.dk/delphi/dragdrop/

Zitat:

Q: When dragging a file from my application to the Explorer, how can I determine the folder where the file is dropped?

A: In short, you can’t.

You must understand that the drag/drop API works the same for all applications that uses it, and the Explorer is just like any other application. The drag/drop API provides a framework that facilitates the interaction between a drop source and the target, but since the drop target can do anything it wants with the data it receives, there is no way to communicate the destiny of the data back to the drop source in a uniform way.
One target may chose to display the dropped data (e.g. notepad), another one to upload it to a web server (e.g. a FTP client), a third to move and rename the file (e.g. the Recycle Bin) and a fourth may chose to copy or move the file (e.g. Explorer).

In my experience there is never any real need to know the destination of a drop to the Explorer. If you find that you do need this, you should rethink your solution. - and feel free to ask for help

Wie macht man es dann, wenn die Source erst bei dem DropEvent erstellt werden muss?

LG
Sougetsu


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz