Einzelnen Beitrag anzeigen

hungrycoder

Registriert seit: 25. Mai 2013
20 Beiträge
 
#1

Drag&Drop vom Explorer auf Listboxen - Unterscheidung?

  Alt 9. Dez 2013, 13:18
Delphi-Version: 2007
Hallo zusammen,

habe ein Problem per Drag&Drop Dateien vom Explorer in meine Anwendung zu schaufeln. Ich würde gerne nur die Listbox befüllen auf die auch tatsächlich gedropt wurde, nur leider weiß ich nicht wie genau ich das realisieren soll.

Ich habe es bis jetzt so probiert und auch im Internet nachgeschaut -> Kein Erfolg:

Delphi-Quellcode:
const DF_NUMBEROFFILES = $FFFFFFFF;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DragAcceptFiles(ListBox1.Handle, true);
  DragAcceptFiles(ListBox2.Handle, true);
end;

procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  ListBox2.Enabled := false;
end;

procedure TForm1.ListBox2DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  ListBox1.Enabled := false;
end;

procedure TForm1.WMDROPFILES(var Msg: TMessage);
var i, anzahl, size: Integer;
 Dateiname: PChar;
begin
 inherited;
 anzahl := DragQueryFile(Msg.WParam, DF_NUMBEROFFILES, 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);
  if ListBox1.Enabled then
    Listbox1.Items.Add(StrPas(Dateiname))
  else
    ListBox2.Items.Add(StrPas(Dateiname));
 StrDispose(Dateiname);
 end;
 DragFinish(Msg.WParam);
 ListBox1.Enabled := true;
 ListBox2.Enabled := true;
end;
Das enablen der Listboxen wollte ich zur Unterscheidung verwenden. Es muss doch eine logische Lösung geben, nur sehe ich die irgendwie nicht. Einer eine Idee?

Gruß

hungrycoder
  Mit Zitat antworten Zitat