Immer wieder wird gefragt, wie man Dateien vom Explorer per
Drag&Drop in eine Delphianwendung bekommt. Wie dies für eine Listbox aussieht, zeigt
Mazel in
diesem Thema:
Delphi-Quellcode:
uses
ShellAPI;
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;