logotipo Blog Giovani Da Cruz
Delphi

Métodos Anônimos em Delphi: O Que São e Como Utilizá-los

4 min de leitura 129 visualizações

Métodos Anônimos em Delphi
 

Os métodos anônimos são uma funcionalidade poderosa introduzida no Delphi XE, permitindo a criação de blocos de código reutilizáveis sem a necessidade de declarar explicitamente um método tradicional. Essa abordagem oferece flexibilidade, principalmente em programação assíncrona, manipulação de eventos e expressões lambda.

Neste artigo, você aprenderá:

  • O que são métodos anônimos
  • Como usá-los no Delphi
  • Aplicações práticas

 

O Que São Métodos Anônimos?

Em Delphi, métodos anônimos são blocos de código que podem ser atribuídos a variáveis, passados como parâmetros ou retornados de funções. Eles são semelhantes a functores ou expressões lambda em outras linguagens, como C++ e JavaScript.

A sintaxe básica segue o modelo:

procedure;
begin
  // Código do método anônimo
end;

Os métodos anônimos podem ser do tipo procedure (sem retorno) ou function (com retorno), e podem capturar variáveis do escopo em que são definidos.

 

Como Utilizar Métodos Anônimos no Delphi

Os métodos anônimos em Delphi são implementados usando o tipo TProc (para procedimentos sem retorno) e TFunc<T> (para funções que retornam um valor).

Exemplo 1: Criando e Executando um Método Anônimo Simples

procedure TForm1.Button1Click(Sender: TObject);
var
  MetodoAnonimo: TProc;
begin
  MetodoAnonimo := procedure
  begin
    ShowMessage('Olá, este é um método anônimo!');
  end;

  MetodoAnonimo; // Executando o método anônimo
end;

No exemplo acima:

  • Criamos uma variável MetodoAnonimo do tipo TProc.
  • Atribuímos a ela um bloco de código sem nome.
  • Chamamos o método anônimo simplesmente usando MetodoAnonimo;.

 

Exemplo 2: Método Anônimo Com Retorno

procedure TForm1.Button2Click(Sender: TObject);
var
  Soma: TFunc<Integer, Integer, Integer>;
  Resultado: Integer;
begin
  Soma := function(A, B: Integer): Integer
  begin
    Result := A + B;
  end;

  Resultado := Soma(10, 20);
  ShowMessage('Resultado da soma: ' + IntToStr(Resultado));
end;

Aqui, criamos uma função anônima que recebe dois inteiros e retorna sua soma.

 

Exemplo 3: Capturando Variáveis do Escopo Externo

Os métodos anônimos podem capturar variáveis do escopo em que são definidos, o que é útil para criar closures.

procedure TForm1.Button3Click(Sender: TObject);
var
  Contador: Integer;
  Incrementar: TProc;
begin
  Contador := 0;

  Incrementar := procedure
  begin
    Inc(Contador);
    ShowMessage('Contador: ' + IntToStr(Contador));
  end;

  Incrementar; // Saída: Contador: 1
  Incrementar; // Saída: Contador: 2
end;

Note que Contador é atualizado a cada chamada de Incrementar, pois está sendo capturado pelo método anônimo.

 

Aplicações Práticas

Os métodos anônimos são amplamente usados para:

Manipulação de Eventos Dinâmicos

Em vez de criar um método separado, um método anônimo pode ser diretamente atribuído ao evento.

Button1.OnClick := procedure(Sender: TObject)
begin
  ShowMessage('Botão clicado!');
end;

 

Execução de Código Assíncrono

No contexto de threads, métodos anônimos facilitam a execução de código de forma mais concisa.

TThread.CreateAnonymousThread(procedure
begin
  Sleep(2000); // Simula um processamento longo
  TThread.Synchronize(nil, procedure
  begin
    ShowMessage('Processo finalizado!');
  end);
end).Start;

 

Uso com Generics

Métodos anônimos podem ser usados em conjunto com TList<T> e outras estruturas genéricas.

var
  Lista: TList<Integer>;
begin
  Lista := TList<Integer>.Create;
  try
    Lista.AddRange([1, 2, 3, 4, 5]);

    Lista.ForEach(procedure(Valor: Integer)
    begin
      ShowMessage('Valor: ' + IntToStr(Valor));
    end);
  finally
    Lista.Free;
  end;
end;

 

Conclusão

Os métodos anônimos são um recurso essencial para desenvolvedores Delphi modernos. Eles simplificam a escrita de código, permitindo expressões mais concisas e fáceis de entender. Seja para eventos, multi-threading ou closures, seu uso pode trazer ganhos significativos de produtividade e organização do código.

Agora que você conhece os métodos anônimos, como pretende aplicá-los no seu projeto? Compartilhe sua experiência! 🚀

💻 Compartilhe o post com outras pessoas se você aumentou o seu conhecimento com ele! 😊

 

 

 

📚 Obrigado por acompanhar até aqui! Explore outros posts relacionados no blog e continue desenvolvendo suas habilidades. Tem mais conteúdos sobre diversos assuntos te esperando! 👩‍💻 🔍✨

Até o próximo post. Valeu! 👋📖

 

 

 

#Delphi #Programação #MétodosAnônimos #Desenvolvimento

#Codificação #DevLife #Pascal #Eventos #Multithreading

#LinguagemDeProgramação

#GiovaniDaCruz

 

 

 

Deixe um comentário

Seu e-mail não será publicado.