Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Drag&Drop aus Explorer und Verzeichnisse (https://www.delphipraxis.net/91431-drag-drop-aus-explorer-und-verzeichnisse.html)

Nils_13 4. Mai 2007 21:14


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;

xaromz 5. Mai 2007 08:31

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

elundril 5. Mai 2007 08:40

Re: Drag&Drop aus Explorer und Verzeichnisse
 
einfach nachsehen obs ne extension hat.

lg ek

xaromz 5. Mai 2007 08:59

Re: Drag&Drop aus Explorer und Verzeichnisse
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
Zitat:

Zitat von elundril
einfach nachsehen obs ne extension hat.

Und was machst Du mit dem Verzeichnis im Anhang?

Gruß
xaromz

Andreas L. 5. Mai 2007 09:48

Re: Drag&Drop aus Explorer und Verzeichnisse
 
Delphi-Quellcode:
Function IsFile(Filename: String): Boolean;
Begin
    Result := FileExists(Filename) and not DirectoryExists(Filename);
end;
http://www.delphi-forum.de/viewtopic...184&highlight=

xaromz 5. Mai 2007 10:22

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: ShellDropper.

Gruß
xaromz

Nils_13 5. Mai 2007 10:31

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.

xaromz 5. Mai 2007 10:56

Re: Drag&Drop aus Explorer und Verzeichnisse
 
Hallo,
Zitat:

Zitat von Nils_13
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.

Da Du nicht der erste bist, der damit Probleme hat, gibt es eine neue Version mit eigener WideStringList-Implementierung. Aber Deine Forderung ("Sorg mal dafür...") ist absolut daneben :? . Und zum Thema ätzend: Natürlich wäre es besser, wenn in neuen Versionen keine neuen Features dazukommen würden. Eigentlich ist ein Faustkeil auch ausreichend. Manchmal fragt man sich schon...

Gruß
xaromz

Nils_13 5. Mai 2007 11:04

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.... :?).

xaromz 5. Mai 2007 11:16

Re: Drag&Drop aus Explorer und Verzeichnisse
 
Hallo,
Zitat:

Zitat von Nils_13
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...

Das Du da nichts nachvollziehen kannst, ist logisch, das ist nämlich nicht drin. Aber das ist doch ganz einfach: FindFirst/FindNext mit "Verzeichnis\*.*" als Parameter sollte Dir den Verzeichnisinhalt liefern.

Gruß
xaromz


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

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