ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

duvida delphi

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
zelongatto
Novato
Novato


Registrado: Sábado, 14 de Julho de 2012
Mensagens: 1

MensagemEnviada: Sáb Jul 14, 2012 2:07 pm    Assunto: duvida delphi Responder com Citação

tudo bem pessoal, sou iniciante em delphi e estou com uma duvida que nao sei nem por onde começo.
queria criar um programa que tenha um botao que ao clicar ele abre para procurar a pasta que quero ex: ai eu escolho documentos-sistema-teste e ele armazene o resultado em um arquivo de texto em c:\teste\teste.txt mas no final do arquivo tipo um append, tem como fazer isso? tipo pegar o caminho da pasta que eu selecionar com botao e jogar no fim de um arquivo de texto?
tem como fazer isso em delphi?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Batera
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008
Mensagens: 4899
Localização: Maringá

MensagemEnviada: Dom Jul 15, 2012 1:21 am    Assunto: Responder com Citação

Boa noite!
Pra você escrever algo dentro do arquivo texto, basta utilizar o código:
Código:
var
  Arquivo: TextFile;
begin
  AssignFile(Arquivo, 'C:\teste\teste.txt');
  If FileExists('C:\teste\teste.txt') then
    Append(Arquivo)
  else
    ReWrite(Arquivo);

  WriteLn(Arquivo, 'Texto dentro do arquivo');
  CloseFile(Arquivo);
end;

Sobre a questão de selecionar a pasta, existe um componente chamado TOpenDialog, utilizado para selecionar arquivos. Não sei se ele também serve para selecionar pastas.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
kud
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 20 de Abril de 2012
Mensagens: 142
Localização: São Paulo - SP

MensagemEnviada: Sáb Jul 21, 2012 12:42 am    Assunto: Responder com Citação

Ola meu caro, se quizer selecionar somente a pasta, tenho uma função super eficiente para isto, segue ela:

Código:

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;



Crie um evento OnClick num botão e cole isto na procedure

Código:
Label1.Caption := BrowseDialog('Selecione a pasta',BIF_RETURNONLYFSDIRS);


Neste caso,o diretorio será colocado num Label.
Essa função utiliza a API do Windows SHBrowseForFolder.

Se caso preferir, como o Batera cito, tem o OpenDialog também.
Na Tool Palete, acesse o grupo DIALOGS, e escolha o OpenDialog,
logo após adicione um botão e crie um evento OnClick para ele, sua procedure tem que estar mais ou menos assim:

Código:

procedure TForm1.Button1Click(Sender: TObject);
begin
 if OpenDialog1.Execute then //Verifica se o Open Dialog foi executado
  begin
    Caminho_Arquivo.Text:= copy(OpenDialog1.FileName,pos('\',OpenDialog1.FileName)+ -3,1000);
   end;
end;


A função BrowseDialog, você so seleciona pastas, com o OpenDialog você so seleciona arquivos.
Espero ter ajudado, qualquer coisa posta novamente.

KUD*~
_________________
Segurança custa caro?
Experimente um acidente!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Batera
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008
Mensagens: 4899
Localização: Maringá

MensagemEnviada: Sáb Jul 21, 2012 12:50 am    Assunto: Responder com Citação

kud, a sua dica é muito boa!
Testei a função aqui e funcionou perfeitamente!
Só precisei adicionar a unit ShlObj no uses.
Valeu!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
GustavoToyota
Profissional
Profissional


Registrado: Domingo, 9 de Outubro de 2011
Mensagens: 605
Localização: Sorocaba - SP

MensagemEnviada: Sáb Jul 21, 2012 1:04 am    Assunto: Responder com Citação

O Delphi tem uma função que utiliza a mesma api da função BrowseDialog do kud, mas serve somente para pastas. É a SelectDirectory da unit FileCtrl.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
kud
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 20 de Abril de 2012
Mensagens: 142
Localização: São Paulo - SP

MensagemEnviada: Sáb Jul 21, 2012 11:35 am    Assunto: Responder com Citação

Perdoem-me amigos, eu esqueci de mencionar a unit necessária para o funcionamento.
Gustavo Toyota, posta para nos a função, eu estou montando uma biblioteca de códigos aqui, tudo que eu vejo que é muito eficiente eu guardo num local dedicado.
Obrigado.


KUD*~
_________________
Segurança custa caro?
Experimente um acidente!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
GustavoToyota
Profissional
Profissional


Registrado: Domingo, 9 de Outubro de 2011
Mensagens: 605
Localização: Sorocaba - SP

MensagemEnviada: Sáb Jul 21, 2012 2:00 pm    Assunto: Responder com Citação

Amigo, olha lá ja postei a função Very Happy
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
kud
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 20 de Abril de 2012
Mensagens: 142
Localização: São Paulo - SP

MensagemEnviada: Sáb Jul 21, 2012 2:03 pm    Assunto: Responder com Citação

Desculpe a minha falta de atenção.
Assim que migrar para o XE2, acredito que ainda hoje, eu testo essa.
Obrigado.


KUD*~
_________________
Segurança custa caro?
Experimente um acidente!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB