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;