Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#9

AW: Drag&Drop vom Explorer auf Listboxen - Unterscheidung?

  Alt 9. Dez 2013, 13:36
Ach stimmt ja, Delphi gibt das an die eigenen Message-Methoden nicht weiter.

@hungrycoder:
Bei dir gäbe es noch ein nettes Problem: Wenn man dann doch nicht gedroppt hätte, wäre das Enabled auf False geblieben.

Ach ja, das OnDragDrop vom Delphi hat absolut nichts mit dem Drag&Drop vom Windows zu tun. Das ist was Eigenes, drum reagiert das OnDragDrop auch nicht.


Delphi-Quellcode:
type
  TListBox = class(StdCtrls.TListBox)
    procedure TForm1.WMDROPFILES(var Msg: TMessage) message WM_DROPFILES;
  end;
  
  TForm1 = class(TForm)
    ...
  end;

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

procedure TListBox.WMDROPFILES(var Msg: TMessage);
var
  i: Integer;
  Dateiname: String;
begin
  for i := 0 to DragQueryFile(Msg.WParam, DF_NUMBEROFFILES, nil, 0) - 1 do begin
    SetLength(Dateiname, DragQueryFile(Msg.WParam, i, nil, 0));
    DragQueryFile(Msg.WParam, i, PChar(Dateiname), Length(Dateiname) + 1);
    Items.Add(Dateiname);
  end;
  DragFinish(Msg.WParam);
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 9. Dez 2013 um 14:31 Uhr)
  Mit Zitat antworten Zitat