Você está aqui: Delphi ::: Dicas & Truques ::: Arquivos e Diretórios

Como testar a existência de um diretório usando a função DirectoryExists() do Delphi

Quantidade de visualizações: 12992 vezes
Em algumas situações precisamos saber se um diretório já existe, talvez para evitar que nosso código tente criar um diretório com o mesmo caminho e nome. Em Delphi isso pode ser feito com o auxílio da função DirectoryExists() da unit SysUtils. Esta função recebe uma string contendo o nome do diretório a ser pesquisado e retorna true se o diretório existir e false em caso contrário. Veja o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  diretorio: string;
begin
  // diretório que queremos verificar a existência
  diretorio := 'C:\arquivo de codigos';

  // vamos verificar se o diretório existe
  if DirectoryExists(diretorio) then
    ShowMessage('O diretório existe')
  else
    ShowMessage('O diretório NÃO existe');
end;

Note que a unit FileCtrl também contém uma função chamada DirectoryExists(). Porém, esta função foi considerada ultrapassada. Dê preferência àquela da unit SysUtils.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.

Link para compartilhar na Internet ou com seus amigos:

Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet

Como usar a propriedade Eof para verificar se estamos no último registro do TClientDataSet do Delphi

Quantidade de visualizações: 14041 vezes
Em algumas situações gostaríamos de verificar se já estamos no último registro do TClientDataSet, ou seja, estamos percorrendo todos os registros do dataset e queremos saber se já estamos no último. Para isso podemos usar a propriedade Eof da classe TClientDataSet. Esta propriedade retorna true se estivermos no último registro e false em caso contrário.

Veja um trecho de código no qual usamos um laço while para percorrer todos os registros de um TClientDataSet. Note o uso da propriedade Eof para finalizar as iterações do laço:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm3.Button4Click(Sender: TObject);
begin
  // vamos percorrer todos os registros do TClientDataSet
  ClientDataSet1.First; // vamos para o primeiro registro
  // e agora disparamos um laço While
  while not ClientDataSet1.Eof do
    begin
      // vamos mostrar em um TMemo os valores do
      // campo id de cada registro
      Memo1.Lines.Add(ClientDataSet1.FieldByName('id').AsString);
      // vamos mover para o próximo registro
      ClientDataSet1.Next;
    end;
end;


A propriedade Eof é verdadeira quando:

a) Abrimos um dataset vazio.

b) Efetuamos uma chamada ao método Last do dataset.

c) Chamamos o método Next do dataset e a chamada falha porque o registro atual já é o último registro no dataset.

d) Efetuamos uma chamada ao método SetRange em uma faixa de dados ou dataset vazio.

Esta dica foi escrita e testada no Delphi 2009.


Delphi ::: Dicas & Truques ::: Strings e Caracteres

Apostila Delphi para iniciantes - Como acessar os caracteres de uma string individualmente

Quantidade de visualizações: 17771 vezes
Em algumas situações pode ser necessário acessar os caracteres de uma palavra, frase ou texto individualmente. Em Delphi isso pode ser feito usando-se a indexação de matrizes. Tenha em mente, porém, que o índice em Delphi começa em 1 e não 0, como na maioria das linguagens.

Veja um trecho de código no qual acessamos o primeiro caractere de uma string:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  nome: string;
  letra: Char;
begin
  nome := 'Osmar J. Silva';

  // vamos obter a primeira letra
  letra := nome[1];

  // vamos exibir o resultado
  ShowMessage('A primeira letra é: ' + letra);
end;

Veja outro exemplo, no qual usamos um laço for para visitar cada um dos caracteres e exibí-lo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  nome: string;
  letra: Char;
  i: integer;
begin
  nome := 'Osmar';

  for i := 1 to Length(nome) do
    begin
      letra := nome[i];
      ShowMessage('O ' + IntToStr(i) + 'º caractere é: '
        + letra);
    end;
end;

Assim como acessamos os caracteres individuais de uma string para leitura, podemos fazê-lo também para alterações. Veja um trecho de código no qual trocamos o terceiro caractere de uma string:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  nome: string;
begin
  nome := 'Osmar';

  // vamos alterar o terceiro caractere
  nome[3] := 'K';
  
  ShowMessage(nome);
end;

Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009.


Delphi ::: VCL - Visual Component Library ::: TEdit

Como habilitar ou desabilitar um TEdit do Delphi usando a função EnableWindow() da API do Windows

Quantidade de visualizações: 11629 vezes
Embora o Delphi já nos forneça as ferramentas necessárias para habilitar ou desabilitar um TEdit em tempo de execução, é importante saber como realizar esta tarefa usando a API do Windows. Para isso, podemos usar a função EnableWindow() com os valores true ou false.

A função EnableWindow() possui a seguinte assinatura em C/C++:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

BOOL EnableWindow(          
  HWND hWnd,
  BOOL bEnable
);

No arquivo Windows.pas podemos encontrar o protótipo e corpo desta função convertidos para Object Pascal:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// Protótipo
{$EXTERNALSYM EnableWindow}
function EnableWindow(hWnd: HWND; bEnable: BOOL): BOOL; stdcall;

// Implementação
function EnableWindow; external user32 name 'EnableWindow';

Note que precisamos informar o HWND (parâmetro hWnd) para a caixa de texto e um valor BOOL. Se fornecermos false, a caixa de texto será desabilitada. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos desabilitar o TEdit usando a função EnableWindow()
  // com o valor false
  if EnableWindow(Edit1.Handle, False) = True then
    begin
      ShowMessage('A caixa de texto foi desabilitada com sucesso.');
    end;
end;

Para habilitar a caixa de texto novamente, só precisamos fornecer o valor true para o parâmetro bEnable:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos habilitar o TEdit usando a função EnableWindow()
  // com o valor true
  if EnableWindow(Edit1.Handle, True) = True then
    begin 
      ShowMessage('A caixa de texto foi habilitada com sucesso.');
    end;
end;

É importante observar que o retorno da função EnableWindow será False se tentarmos habilitar uma caixa de texto que já está habilitada ou tentarmos desabilitar uma caixa de texto que já está desabilitada.


Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 66 usuários muito felizes estudando em nosso site.