N'abend
Ich nutze folgenden Code um ein Drag & Drop vom Explorer in ein ListView zu realisieren. Leider funktioniert es nicht.
Ich kann zwar in das ListView reindraggen aber beim loslassen der Maus zeigt er das MessageFenster nicht an. Was ist falsch?
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);
showmessage(String(PCharFileName));
StrDispose(PCharFileName);
end;
DragFinish(Msg.WParam);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(ListView1.Handle, True);
end;