Blog Como trabalhar com CustomAttributes no Delphi

Como trabalhar com CustomAttributes no Delphi

Como trabalhar com CustomAttributes no Delphi post thumbnail image

Os CustomAttributes são um recurso poderoso no Delphi que permite adicionar metadados às classes, métodos, propriedades ou até mesmo parâmetros. Essa funcionalidade foi introduzida para facilitar a criação de código mais dinâmico e robusto, ampliando as possibilidades de abstração e personalização.

A principal vantagem dos CustomAttributes é permitir que informações adicionais sejam associadas a elementos de código, sem interferir na lógica ou estrutura base. Esses metadados podem ser extraídos e utilizados em tempo de execução, permitindo comportamentos dinâmicos e adaptáveis.

Neste artigo, exploraremos como criar, utilizar e extrair informações de CustomAttributes no Delphi, passando por um exemplo prático para demonstrar como integrar essa funcionalidade em seus projetos.

O que são CustomAttributes no Delphi?

No Delphi, os CustomAttributes são implementados como classes derivadas de TCustomAttribute. Elas permitem que informações adicionais sejam anexadas a tipos, métodos, propriedades ou parâmetros. Essas informações, ou metadados, não afetam diretamente o comportamento do código em tempo de compilação, mas podem ser lidas em tempo de execução usando RTTI (Runtime Type Information).

Este recurso é amplamente utilizado em frameworks como ORM (Object-Relational Mapping), onde atributos customizados podem ser usados para mapear classes e propriedades a tabelas e colunas de banco de dados, por exemplo.

Como criar um CustomAttribute?

A criação de um CustomAttribute no Delphi é simples. Você precisa definir uma classe que herda de TCustomAttribute e adicionar os campos ou propriedades necessários para armazenar informações. Vamos ver um exemplo básico:

Aqui, CampoAttribute permite associar um nome a um campo ou propriedade de uma classe.

Usando CustomAttributes em Classes

Depois de criado o atributo, ele pode ser associado a classes, propriedades ou métodos. Veja um exemplo de como utilizá-lo em uma classe:

No exemplo acima, associamos o nome de uma tabela ao atributo da classe e nomes de colunas aos atributos das propriedades.

Extraindo CustomAttributes em Tempo de Execução

Para acessar os atributos definidos, utilizamos a RTTI. Abaixo, demonstramos como recuperar as informações de atributos associados a propriedades de uma classe:

O código acima percorre todas as propriedades da classe TCliente, buscando atributos do tipo CampoAttribute e exibindo suas informações.

Observações: Nos exemplos acima criamos um form no Delphi com apenas um Button e um Memo. Criamos uma unit App.CustomAtribute.pas com a classe CustomAtribute e outra unit para conter o objeto TCliente. Chamamos a unit de App.Cliente.

O exemplo percorre os atributos de TCliente, localiza o CampoAtribute e publica dentro de um Memo. Simples assim.

Aplicações Práticas

  1. Mapeamento de Banco de Dados: Atribuir nomes de tabelas e colunas diretamente no código para facilitar a integração com bancos de dados.
  2. Validação de Dados: Criar atributos que definem regras de validação específicas para campos.
  3. Serialização: Configurar atributos que indicam como as propriedades de uma classe devem ser serializadas.

Participe da Comunidade no Telegram

🚀 Quer continuar essa discussão e trocar ideias com outros desenvolvedores? Junte-se à nossa comunidade no Telegram! Lá, você pode comentar sobre o que achou deste artigo, tirar suas dúvidas e compartilhar suas experiências com Delphi e ainda discutir ou tirar suas dúvidas sobre os mais variados temas em uma comunidade com mais de 1.000 desenvolvedores.

🔗 Clique aqui para entrar na comunidade

Te vejo lá!

Conclusão

Os CustomAttributes no Delphi oferecem uma maneira poderosa de incorporar metadados ao seu código, permitindo maior flexibilidade e dinamismo em suas aplicações. Com sua utilização, é possível reduzir a rigidez do código e melhorar a organização e a manutenibilidade.

Experimente integrar CustomAttributes em seus projetos, e veja como este recurso pode transformar a forma como você estrutura e gerencia suas aplicações no Delphi.

Mais informações nesse link.

Adriano Santos

Deixe sua resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Posts Relacionados