Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   erkennen ob Verzeichnis oder Datei bei dragover (https://www.delphipraxis.net/187278-erkennen-ob-verzeichnis-oder-datei-bei-dragover.html)

Helmi 16. Nov 2015 18:10

AW: erkennen ob Verzeichnis oder Datei bei dragover
 
Ich bin mir überhaupt nicht sicher, dass dein Vorhaben überhaupt geht.

Wenn ich mir vorstelle, ich nimm eine Datei aus dem Windows Explorer und zieh sie in meine Anwendung.

Wenn ich dich richtig verstanden habe, so müsste die Prüfung ja schon beim "Anpacken der Datei" passieren.
Da ist sie ja noch im Explorer - erst wenn ich sozusagen mit der Maus über meiner Anwendung bin, kann
ich prüfen was ich bekomme.

alfold 16. Nov 2015 20:07

AW: erkennen ob Verzeichnis oder Datei bei dragover
 
Ja es geht, zumindesten mit IDropTarget. Wenn man in der DropEnter Funktion
abfragt ob Datei oder Verzeichnis.
Delphi-Quellcode:
if DirectoryExists(szBuffer) then
        is_Dir:= True
      else
        is_Dir:= False;
Dann kann man bei DragOver mit
Delphi-Quellcode:
if is_Dir then
  dwEffect := DROPEFFECT_NONE
else
  dwEffect := DROPEFFECT_COPY ;

Result := S_OK;
das dann dementsprechend auswerten.
So funktioniert es jedenfals bei mir:thumb:

getestet mit WinXP. Auf Win7 bin ich noch nicht dazu gekommen.

EDIT: Wenn ich MS richtig verstehe(kann leider kein Engl) wird DropEnter vor allem ausgeführt. So kann die Applikation entscheiden was sie damit anfangen will.
Zumal DropEnter und Drop identisch in ihrem Aufruf sind!
Warum allerdings das nirgends in Delphi "OnDragEnter" oder in den Externen Dropper komponenten mit drin ist verstehe ich nicht!?

Gruß alfold


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 Uhr.
Seite 2 von 2     12   

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