Como abrir arquivos num listview usando opendialog

Delphi

14/07/2010

Olá amigos do fórum, boa tarde a todos. Gostaria de uma ajuda dos amigos, tenho um projeto na qual preciso realizar a importação para o banco de dados dos arquivos existente em uma pasta.   Mas estou aprimorando e preciso incrementar ainda mais o mesmo.   Na janela de importação existem no form estes componentes um button um opendialog um listview   Gostaria de saber como se faz ao clicar no botao eu abra a pasta que eu deseje e importe os arquivos ali existentes da seguinte mandeira   no listview na coluna 1 apareçam somente os nomes dos arquivos na coluna 2 apareçam o arquivo com seu caminho completo no pc exemplo abaixo   coluna 1                                coluna 2 teste.dll                                c:\windows\system\teste.dll   Agradeço a atenção de todos.   Obrigado.
Júnior Sistemas

Júnior Sistemas

Curtidas 0

Respostas

Wilson Junior

Wilson Junior

14/07/2010

Inclua duas colunas no ListView.

procedure butAbrirClick(Sender: TObject);
begin
  if  OpenDialog1.Execute then
      ListaArquivos( ExtractFileDir(OpenDialog1.FileName) )
  ;
end;

function TemAtributo(Attr, Val: Integer): Boolean;
begin
  Result := Attr and Val = Val;
end;

procedure ListaArquivos(Diretorio: String);
var
  srArquivo: TSearchRec;
  Retorno: integer;
  Novo: TListItem;
begin
  ListView1.Clear;

  if  Diretorio[ Length(Diretorio) ] <> '\' then
      Diretorio := Diretorio + '\'
  ;

  Retorno := FindFirst( Diretorio + '\*.*', faAnyFile, srArquivo );

  try
    while Retorno = 0 do
    begin
      if  (srArquivo.Name <> '.') and (srArquivo.Name <> '..')
      and (not TemAtributo(srArquivo.Attr, faDirectory) )then
        begin
          Novo := ListView1.Items.Add;
          Novo.Caption := srArquivo.Name;

          Novo.SubItems.Add( Diretorio + srArquivo.Name );
        end
      ;

      Retorno := FindNext( srArquivo );
    end;
  finally
    FindClose( srArquivo );
  end;
end;


Espero ter colaborado.
GOSTEI 0
Júnior Sistemas

Júnior Sistemas

14/07/2010

Winson, testei e funcionou, só preciso de uns detalhes, quando abro a janela para importar os arquivos ele traz tudo que tem na pasta, eu precisava que só trouxesse o que eu selecionasse, por exemplo quando abro, ele deixa eu selecionar os arquivos, mas me traz tudo da pasta, gostaria que me trouxesse somente os arquivos que eu selecionasse.     Obrigado brother.
GOSTEI 0
Wilson Junior

Wilson Junior

14/07/2010

No OpenDialog, na propriedade Options marque "ofAllowMultiSelect = True".

procedure butAbrirClick(Sender: TObject);
begin
  if  OpenDialog1.Execute then
      ListaArquivos
  ;
end;

procedure ListaArquivos;
var
  x: integer;
  Novo: TListItem;
begin
  ListView1.Clear;

  for x := 0 to OpenDialog1.Files.Count - 1 do
  begin
    Novo := ListView1.Items.Add;
    Novo.Caption := ExtractFileName( OpenDialog1.Files[x] );

    Novo.SubItems.Add( OpenDialog1.Files[x] );
  end
end;


Espero ter colaborado.
GOSTEI 0
Júnior Sistemas

Júnior Sistemas

14/07/2010

Valeu meu brother, funcionou. Obrigado. Dúvida concluída.  
GOSTEI 0
Pedro Saraiva.

Pedro Saraiva.

14/07/2010

Programa com códigos fontes? Ola pessoal, você programador que quer um aplicativo exemplo para fins comerciais, tenho uma dica, compre o WinPhar que vem com todos os códigos fontes e faça um programa baseado nele, sim ele também vêm com todos os componentes para instalar, voce além de ganhar um programa complidao, ganha tb os seus códigos fontes e seus componentes. O programa foi desenvolvido em Delphi 7 com banco de dados paradox, e custa apenas 20,00 reais
deem uma olhadinha ai no produto
http://produto.mercadolivre.com.br/MLB-149256966-winphar-2008-sistema-para-farmacias-e-drogarias-_JM
e ente em contato pelo e-mail pedroluissaraiva@yahoo.com.br.!
GOSTEI 0
POSTAR