E-Zine Exclusivo para o Whastapp

Delphi: Drag-and-drop com múltipos arquivos

foto_ramos Delphi: Drag-and-drop com múltipos arquivos

Ramos de Souza Janones

Janones, é um empreendedor brasileiro apaixonado por empreendedorismo e tecnologia. Ao longo dos anos trabalhando com o desenvolvimento de softwares desktop desde a linguagem Clipper, passando pelo Delphi e atualmente com Java.

Optou pela formação de Publicidade e Marketing por sua segunda empresa de tecnologia ter participado do "boom" da internet nos anos 90 e na procura de melhorar seus conhecimentos em negócios.

Em razão da principal formação e profundos conhecimentos em programação e banco de dados, é capaz de realizar o desenvolvimento de aplicativos web, desktop e mobile com maior criatividade e inovação que profissionais de desenvolvimento com uma formação única e mais especifica, dedicada somente ao desenvolvimento de softwares.

Com toda sua experiência com empresas de software, sua formação e paixão por negócios escreveu o livro "Marketing para Empresas e Profissionais de Software", publicado pela editora carioca Ciência Moderna em 2012. Além de outros livros sobre programação.
foto_ramos Delphi: Drag-and-drop com múltipos arquivos

O controle TShellListView (a parte do pacote de controles Shell) pode ser usado para exibir arquivos do sistema de arquivos. Emparelhado com casca TShellTreeView, o TShellListView pode ser usado para imitar interface de usuário Windows Explorer.

O nome completo (path) do arquivo selecionado é armazenado na propriedade SelectedFolder. Ou seja, se um arquivo é selecionado em um shell list view, para ter seu nome pode ler-se: ShellListView1.SelectedFolder.PathName.

Note-se que SelectedFolder é do tipo TShellFolder, e sua propriedade IsFolder avisam se o item selecionado é uma pasta ou um arquivo.

Quando a propriedade é definida MultiSelect (true) para ver a lista de shell, para obter a lista de arquivos selecionados, você precisa percorrer os itens e verificar se um item é selecionado.

Aqui está um exemplo de arrastar-soltar arquivos selecionados a partir do TShellListView para um controle TMemo.Coloque um  controle TMemo em um formulário e coloque seu nome como “memoSelectedFiles”. Coloque, também, um TShellListView.

No Memo, nos eventos OnDragDrop e OnDragOver coloque o código a seguir:

//No evento OnDragDrop
procedure TSimpleFilesForm.memoSelectedFilesDragDrop(Sender, Source: TObject; X, Y: Integer);
var
files: TStringList;
slv : TShellListView;
cnt: Integer;
begin
slv := TShellListView(Source);

files := TStringList.Create;
try
if NOT slv.MultiSelect then
files.Add(slv.SelectedFolder.PathName)
else //multiselect
begin
for cnt := 0 to -1 + slv.Items.Count do
begin
//selected and NOT folder
if slv.Items[cnt].Selected AND (NOT slv.Folders[cnt].IsFolder) then
files.Add(slv.Folders[cnt].PathName);
end;
end;

//display selected files in memo
memoSelectedFiles.Lines.Assign(files);
finally
files.Free;
end;
end;

//No evento OnDragOver
procedure TSimpleFilesForm.memoSelectedFilesDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept := Source is TShellListView;
end;

Top
%d blogueiros gostam disto: