![]() |
Drag&Drop aus Explorer und Verzeichnisse
Hoi,
ich habe folgenden Code für das reinziehen von Dateien ins Programm aus dem Explorer heraus gefunden, aber möchte ihn nun so ausbauen, dass er auch Verzeichnisse kann. Wie wäre es möglich, eine Liste aller Dateien im Verzeichniss zu bekommen und wie bekommt man überhaupt mit, ob es ein Verzeichniss ist ?
Delphi-Quellcode:
procedure TfrmMain.WMDROPFILES(var Msg: TMessage);
var i, anzahl, size : Integer; Dateiname : PChar; begin inherited; anzahl := DragQueryFile(Msg.WParam, $FFFFFFFF, Dateiname, 255); for i := 0 to (anzahl - 1) do begin size := DragQueryFile(Msg.WParam, i , nil, 0) + 1; Dateiname:= StrAlloc(size); DragQueryFile(Msg.WParam,i , Dateiname, size); AddSingleFile(StrPas(Dateiname)); StrDispose(Dateiname); end; DragFinish(Msg.WParam); end; |
Re: Drag&Drop aus Explorer und Verzeichnisse
Hallo,
DragQueryFile macht keinen Unterschied zwischen Dateien und Ordnern. Du kannst sogar ein Laufwerk droppen. Wenn Du wissen willst, was genau da gedroppt wurde, musst Du es selbst rausfinden. Code hierfür sollte es im Forum zur Genüge geben. Gruß xaromz |
Re: Drag&Drop aus Explorer und Verzeichnisse
einfach nachsehen obs ne extension hat.
lg ek |
Re: Drag&Drop aus Explorer und Verzeichnisse
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
Zitat:
Gruß xaromz |
Re: Drag&Drop aus Explorer und Verzeichnisse
Delphi-Quellcode:
Function IsFile(Filename: String): Boolean;
Begin Result := FileExists(Filename) and not DirectoryExists(Filename); end; ![]() |
Re: Drag&Drop aus Explorer und Verzeichnisse
Hallo,
da es oft interessant ist, was sich hinter einem Dateinamen verbirgt, habe ich meine Komponente entsprechend erweitert. Zu finden ist die aktuelle Version in Zukunft in einem eigenen Thema: ![]() Gruß xaromz |
Re: Drag&Drop aus Explorer und Verzeichnisse
Ist die Unit WideString von ShellDrop wieder mal eine der ätzenden Units von den neueren Versionen ? Falls ja: sorg mal dafür, dass es auch abwärtskompatibel ist.
|
Re: Drag&Drop aus Explorer und Verzeichnisse
Hallo,
Zitat:
Gruß xaromz |
Re: Drag&Drop aus Explorer und Verzeichnisse
Ich dachte eigentlich nur, dass das eine der neuen Units wäre, die es in D7 nicht gibt, hätte ja sein können und da ich es hasse, wenn eine Komponente nicht abwärtskompatibel läuft, habe ich das so geschrieben.
Ich habe mir einfach mal deine Prozeduren zur Erkennung von Datenträgern, Ordnern und Dateien rausgenommen. Jetzt bleibt noch die Frage übrig, wie man sich eine Liste aller Dateien besorgt, falls es ein Verzeichniss ist. Das kann ich in deinem Code nicht nachvollziehen und da installieren nicht geht, bleibt mir keine Wahl, als das gerade bei mir ohne Komponente einzubauen, da das die letzte Sache vor dem Release ist und ich nicht schon wieder Wochen warten will (über 1,5 Jahre Verspätung hat das Programm immerhin.... :?). |
Re: Drag&Drop aus Explorer und Verzeichnisse
Hallo,
Zitat:
Gruß xaromz |
Re: Drag&Drop aus Explorer und Verzeichnisse
Ahja klar, aber an alle: SearchTool ist besser. Danke.
Edit: Dein IsDirectory funktioniert nicht, denn es liefert immer False zurück. Folgender Code liefert auch immer False, warum ?
Delphi-Quellcode:
function IsDirectory(dir : String) : Boolean;
begin Result := DirectoryExists(Dir); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 Uhr. |
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-2025 by Thomas Breitkreuz