procedure TForm1.ShellListView2DragDrop(Sender, Source: TObject; X,
Y: Integer);
var SourceName,DestName:string;
i:integer;
SL:TStringList;
begin
SL:=TStringList.Create;
for i:=0 to ShellListView1.Items.Count-1 do
if ShellListView1.Items.Item[i].Selected then
SL.Add(ShellListView1.Folders[i].PathName);
for i:=0 to SL.Count-1 do
begin
SourceName:=SL.Strings[i];
DestName:=ShellListView2.RootFolder.PathName+'\'+ExtractFileName(SourceName);
Copy(SourceName,DestName);
end;
FreeAndNil(SL);
end;
procedure Copy(Source:string;Dest:string);
var SHFO:TShFileOpStruct;
begin
with SHFO do
begin
Wnd:=0;
wFunc:= FO_COPY;
pFrom:=PChar(Source+#0#0);
pTo:=PChar(Dest+#0#0);
fFlags:=FOF_NOCONFIRMATION;
fAnyOperationsAborted:=False;
end;
ShFileOperation(SHFO);
end;
procedure TForm1.ShellListView2DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept:=(Source is TShellListView);
end;
procedure TForm1.ShellListView2DragDrop(Sender, Source: TObject; X,
Y: Integer);
var SourceName,DestName:string;
i:integer;
begin
SourceName:=ShellListView1.SelectedFolder.PathName;
DestName:=ExtractFilePath(ShellListView2.RootFolder.PathName)+'\'+ExtractFileName(SourceName);
Copy(SourceName,DestName);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ShellListView1.DragMode:=dmAutomatic;
ShellListView2.AutoRefresh:=True;
end;