Geovani Postado Dezembro 1, 2006 Denunciar Share Postado Dezembro 1, 2006 Olá Pessoal!!Estou fazendo um programa de backup onde pode ser copiado um arquivo ou uma pasta, então.. alguém tem um componente ou uma função que abra uma janela em que permita eu escolher um arquivo ou uma pasta?abraço! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thales Pontes Martins Postado Dezembro 1, 2006 Denunciar Share Postado Dezembro 1, 2006 Ué, o TOpenDialog e aquele código que você leu naquele meu tópico já não fazem isso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Geovani Postado Dezembro 1, 2006 Autor Denunciar Share Postado Dezembro 1, 2006 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 branconão sei se expliquei direitoabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thales Pontes Martins Postado Dezembro 1, 2006 Denunciar Share Postado Dezembro 1, 2006 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Geovani Postado Dezembro 1, 2006 Autor Denunciar Share Postado Dezembro 1, 2006 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thales Pontes Martins Postado Dezembro 2, 2006 Denunciar Share Postado Dezembro 2, 2006 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Dezembro 2, 2006 Denunciar Share Postado Dezembro 2, 2006 Existe a função SHBrowseForFolder da api shell32.dll Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Churc Postado Dezembro 2, 2006 Denunciar Share Postado Dezembro 2, 2006 Existe a função SHBrowseForFolder da api shell32.dllhttp://delphi.about.com/od/windowsshellapi/l/aa070400a.htm Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thales Pontes Martins Postado Dezembro 2, 2006 Denunciar Share Postado Dezembro 2, 2006 Acredito que essa BroseForFolder somente permite selecionar pastas, e o que o colega quer é selecionar tanto pastas como arquivos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Churc Postado Dezembro 2, 2006 Denunciar Share Postado Dezembro 2, 2006 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 Flagsmas na minha opinião não é o que ele quer, usando um open dialog com Multiselect vai ser melhor mesmo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Dezembro 2, 2006 Denunciar Share Postado Dezembro 2, 2006 Colegas, a função SHBrowseForFolder permite selecionar somente pastas ou pastas e arquivos.Churc, como seria a seleção de pastas e arquivos pelo TOpenDialog ? Isso pouparia código. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Geovani Postado Dezembro 2, 2006 Autor Denunciar Share Postado Dezembro 2, 2006 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Geovani Postado Dezembro 2, 2006 Autor Denunciar Share Postado Dezembro 2, 2006 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; Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Geovani
Olá Pessoal!!
Estou fazendo um programa de backup onde pode ser copiado um arquivo ou uma pasta, então.. alguém tem um componente ou uma função que abra uma janela em que permita eu escolher um arquivo ou uma pasta?
abraço!
Link para o comentário
Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados
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.