logotipo Blog Giovani Da Cruz
Delphi

Usando SelectDirectory no Delphi

4 min de leitura 601 visualizações

selecionar diretório em delphi

Fala galera da programação, tudo beleza? Hoje vamos falar sobre uma interessante função disponível do Delphi.

 

Introdução

Neste artigo, vamos explorar o uso da função SelectDirectory no Delphi. Esta função é útil quando você precisa permitir que o usuário selecione um diretório no sistema de arquivos. Vamos ver um exemplo prático que mostra como utilizá-la em um formulário com um botão e um label (rótulo).

 

Descrição

O exemplo a seguir requer um botão e um rótulo em um formulário. Quando você clica no botão, uma caixa de diálogo para seleção de diretório aparece. O diretório atual exibido na caixa de diálogo é C:\WINDOWS. Você pode selecionar um diretório da lista de diretórios ou inserir um novo diretório na caixa de edição. Se você inserir um novo diretório, uma caixa de mensagem perguntará se o diretório deve ser criado. Se você escolher “Sim”, o diretório será criado. Se escolher “Não”, a caixa de mensagem será fechada sem criar o diretório. O nome do diretório selecionado aparecerá como a legenda do rótulo.

 

Código

Aqui está o código necessário para implementar essa funcionalidade:

uses
  FileCtrl;

const
  SELDIRHELP = 1000;

procedure TForm1.Button1Click(Sender: TObject);
var
  Dir: string;
begin
  Dir := 'C:\Windows';
  
  if FileCtrl.SelectDirectory(Dir, [sdAllowCreate, 
    sdPerformCreate, sdPrompt], SELDIRHELP) then
  begin
    Label1.Caption := Dir;
  end;
end;

No código acima, utilizamos a unidade FileCtrl que contém a função SelectDirectory. Vamos entender melhor cada parte desse código:

  1. uses FileCtrl;
    Incluímos a unidade FileCtrl que contém a função SelectDirectory.
  2. const SELDIRHELP = 1000;
    Definimos uma constante SELDIRHELP para o parâmetro de ajuda da caixa de diálogo de seleção de diretório.
  3. procedure TForm1.Button1Click(Sender: TObject);
    Definimos o evento OnClick do botão. Este procedimento será executado quando o botão for clicado.
  4. var Dir: string;
    Declaramos uma variável Dir do tipo string que armazenará o caminho do diretório selecionado.
  5. Dir := ‘C:\Windows’;
    Inicializamos a variável Dir com o caminho C:\Windows.
  6. if FileCtrl.SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt], SELDIRHELP) then
    Chamamos a função SelectDirectory passando a variável Dir, um conjunto de opções [sdAllowCreate, sdPerformCreate, sdPrompt] e a constante SELDIRHELP. Se o usuário selecionar um diretório e confirmar, a função retorna true.
  7. Label1.Caption := Dir;
    Se a função SelectDirectory retornar true, a legenda do rótulo Label1 é atualizada com o caminho do diretório selecionado.

 

Opções de SelectDirectory

As opções usadas na chamada SelectDirectory são:

  • sdAllowCreate: Permite que o usuário crie novos diretórios.
  • sdPerformCreate: Cria automaticamente o diretório, se não existir.
  • sdPrompt: Exibe um prompt perguntando ao usuário se ele deseja criar o diretório, caso não exista.

Essas opções fornecem flexibilidade na seleção e criação de diretórios, tornando a função SelectDirectory uma ferramenta poderosa e conveniente em aplicações Delphi.

 

Transformando em Função

Abaixo segue o código fonte da função:

function SelectADirectory(Title : string) : string;
var
  Pasta : String;
begin
  SelectDirectory(Title, '', Pasta);
 
  if (Trim(Pasta) <> '') then
    if (Pasta[Length(Pasta)] <> '\') then
      Pasta := Pasta + '\';
 
  Result := Pasta;
end;

 

Exemplo de uso

procedure TForm1.Button1Click(Sender: TObject);
begin
  // Setando para uma Edit a pasta selecionada.
  Edit1.Text := SelectADirectory('Selecione a pasta de Instalação.');
end;

 

Obs:

É necessário estar declarado FileCtrl na seção uses,
em versões mais novas declare Vcl.FileCtrl;

 

Conclusão

A função SelectDirectory no Delphi é uma ferramenta poderosa e flexível para permitir que os usuários selecionem e criem diretórios no sistema de arquivos. Com um simples conjunto de opções, você pode oferecer uma interface intuitiva e funcional que melhora a interação do usuário com sua aplicação. O exemplo apresentado demonstra como configurar e utilizar essa função de forma eficaz, mostrando que com poucas linhas de código é possível implementar funcionalidades robustas e úteis. Experimente incorporar a SelectDirectory em seus projetos e veja como ela pode facilitar a vida dos seus usuários.

 

Beleza pessoal? Espero que possa ajudar!

 

Poste nos comentários se esta função já ajudou você, em alguma situação.

 

Um abraço e até o próximo post. Valeu!

 

#Delphi

#DesenvolvimentoDeSoftware

#Programação

#SelectDirectory

#DicasDeDesenvolvimento

#DevCommunity

#GiovaniDaCruz

2 comentários

  1. – trabalho há mais de 20 anos com delphi e agora do nada surgiu a necessidade de selecionar apenas a pasta. Não me recordo, mas em algum momento devo ter montado uma tela para colocar todos esses componentes que o SelectDirectory trás automaticamente. Obrigado pela dica.

Deixe um comentário

Seu e-mail não será publicado.