Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

Dateien vom Explorer per Drag&Drop in eine ListBox einfü

  Alt 8. Sep 2007, 22:07
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;
  Mit Zitat antworten Zitat