Ir para conteúdo
Fórum Script Brasil
  • 0

Procurar Arquivo Ou Pasta


Geovani

Pergunta

12 respostass a esta questão

Posts Recomendados

  • 0

Aquele código, permite selecionar uma pasta..

O OpenDialog (se não estou enganado) você pode configurar para selecionar arquivo ou você pode configurar para selecionar pasta.

Quando você seleciona um arquivo no opendialog, o campo nome do arquivo é preenchido, com isso é possivel clicar em abrir, mas quando é selecionada uma pasta não preenche o campo nome do arquivo, consequentemente não funciona nada quando se clica em abrir, pois o campo nome do arquivo está em branco

não sei se expliquei direito

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Justamente, o OpenDialog tem somente o campo FileName e FileNames, ou seja, só se pode abrir arquivos com ele. Para abrir pastas o Windows tem um Dialog específico que pode ser usado no Delphi com aquele código que o Churc postou naquele meu tópico.

Link para o comentário
Compartilhar em outros sites

  • 0

Pois é, eu vi num programa, não lembro agora, era tipo o OpenDialog, se eu selecionasse uma pasta e clicasse em abrir, a pasta era adicionada...

Se eu desse um duplo clique nessa pasta, a pasta seria aberta e selecionando um arquivo e clicando em abrir, o arquivo seria adicionado...

Isso fecha com que eu quero...

valeu!

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, aí você teria que fazer algo parecido com um explorer pro usuário escolher tanto um arquivo ou pasta. Eu não conheço nada pronto que faça isso, mas algum outro colega deve saber.

Mas se não tiver você pode fazer um TreeView e usar a função de pesquisa que eu postei na seção de dicas(post #27), aí você coloca um OwnerDraw e usa a função ExtractAssociatedIcon para desenhar os ícones. Desse jeito fica bem legal.

Link para o comentário
Compartilhar em outros sites

  • 0
Acredito que essa BroseForFolder somente permite selecionar pastas, e o que o colega quer é selecionar tanto pastas como arquivos.
então, da pra selecionar arquivos sim, só mudar as Flags

mas na minha opinião não é o que ele quer, usando um open dialog com Multiselect vai ser melhor mesmo

Link para o comentário
Compartilhar em outros sites

  • 0
na minha opinião não é o que ele quer, usando um open dialog com Multiselect vai ser melhor mesmo

Eu ativei o Multiselect mas não é o que estou querendo, ele permite selecionar mais de um arquivo, o que eu queria é ter a opção de selecionar um arquivo para copiar, ou uma pasta para copiar.

Colegas, a função SHBrowseForFolder permite selecionar somente pastas ou pastas e arquivos.

Acho que essa função tem o que preciso...

Valeu

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui a função no Link que o Churc passou,

obrigado pela atenção de todos!!

abraço!

segue a função abaixo:

uses ShellAPI, ShlObj;

function BrowseDialog
 (const Title: string; const Flag: integer): string;
var
  lpItemID : PItemIDList;
  BrowseInfo : TBrowseInfo;
  DisplayName : array[0..MAX_PATH] of char;
  TempPath : array[0..MAX_PATH] of char;
begin
  Result:='';
  FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
  with BrowseInfo do begin
    hwndOwner := Application.Handle;
    pszDisplayName := @DisplayName;
    lpszTitle := PChar(Title);
    ulFlags := Flag;
  end;
  lpItemID := SHBrowseForFolder(BrowseInfo);
  if lpItemId <> nil then begin
    SHGetPathFromIDList(lpItemID, TempPath);
    Result := TempPath;
    GlobalFreePtr(lpItemID);
  end;
end; 
Para chamar a função:
procedure TForm1.ButtonProcurarClick(Sender: TObject);
begin

  { Exemplo:  BrowseDialog(Titulo,Flag);
  Flags:
  BIF_RETURNONLYFSDIRS   = Mostra pastas
  BIF_BROWSEINCLUDEFILES = Mostra pastas e arquivos
  BIF_BROWSEFORCOMPUTER  = Mostra Computadores
  BIF_BROWSEFORPRINTER   = Mostra Impressoras
  }

  EditCaminho.text:=BrowseDialog('Selecione arquivo ou pasta',BIF_RETURNONLYFSDIRS);
end;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...