Jump to content
Fórum Script Brasil
  • 0

Procurar Arquivo Ou Pasta


Geovani
 Share

Question

12 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      151k
    • Total Posts
      649.1k
×
×
  • Create New...