Dateien per Drag-and-Drop in ListBox einfügen
mazel stellt hier vor, wie man Dateien (und Ordner) per Drag und Drop in eine Listbox eingefügt werden können.
Möchte man nur Dateien hinzufügen, muss dies explizit durch Überprüfung sichergestellt werden. Siehe dazu weiter unten.
Delphi-Quellcode:
uses ..., ShellAPI;
Delphi-Quellcode:
Zum Ausprobieren des obigen Codes benötigt man natürlich noch eine Listbox auf dem Formular mit Namen ListBox1.
private
procedure WMDROPFILES(var Msg: TMessage); Message WM_DROPFILES; procedure TForm1.WMDROPFILES(var Msg: TMessage); var i, Counts, Size: Integer; PCharFileName: PChar; begin inherited; PCharFileName:=nil; Counts:=DragQueryFile(Msg.WParam, $FFFFFFFF, PCharFileName, 255); for i:=0 to Counts - 1 do begin Size:=DragQueryFile(Msg.WParam, i, nil, 0) + 1; PCharFileName:=StrAlloc(Size); DragQueryFile(Msg.WParam, i, PCharFileName, Size); ListBox1.Items.Add(String(PCharFileName)); StrDispose(PCharFileName); end; DragFinish(Msg.WParam); end; procedure TForm1.FormCreate(Sender: TObject); begin DragAcceptFiles(ListBox1.Handle, True); end; Möchte man verhindern, dass Ordner auch hinzugefügt werden können, so darf man nicht einfach hinzufügen, sondern man muss das Hinzufügen mittels folgender Überprüfung einschränken.
Delphi-Quellcode:
if (FileGetAttr(String(PCharFileName)) <> faDirectory) then ListBox1.Items.Add(String(PCharFileName));
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:01 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