10/04/2021 às 05:12 Delphi

Class Helper - Um poderoso Recurso

587
3min de leitura

Se você programahá algum tempo, já deve ter passado por uma situação muito comum: em algum momento sentiu falta de alguma função em algum componente, seja ele nativo ou não!

Quando comecei a sentir a necessidade de funções em determinados componentes, aprendi a criar os meus próprios componentes!

Porém, será que realmente precisamos criar um componente novo para acrescentar poucas funções, muitas vezes métodos super simples?

O Class Helper é uma excelente solução! Como o próprio nome já diz, é um "ajudante de classe", traduzindo ao pé da letra!

Ele funciona como uma "biblioteca", que ao ser importada através do "uses", disponibiliza todos os métodos para uma determinada classe. O Compilador ao ver o Helper, acrescenta à classe referenciada as funções contidas no Helper.

Este recurso está disponível à partir da versão 2006 do Delphi.

E como eu descobri o Helper? Através de um método contido no tipo String, a função ToInteger(). Quando Atualizamos o delphi, percebi que haviam funções no tipo String, entre elas o método ToInteger. Foi aí que descobri esse mundo maravilhoso!

Então vamos à parte prática!

O helper pode ser criado tanto em uma unit separada, como na própria unit onde será chamado. Aí entra a sua organização. Eu particularmente gosto de criar unit's específicas com os helper's.

Como exemplo prático, vamos imaginar que temos um TEdit que receberá um texto, e precisamos alterar todas as iniciais de palavra para maiúsculas.

É algo simples de se fazer! Poderia ser uma função que retornasse o resultado, ou que alterasse diretamente no componente em específico, porém, temos a oportunidade de criar uma biblioteca para utilizarmos a função em qualquer TEdit e em qualquer projeto, chamando o método diretamente no componente.

Então criaremos nossa Unit, vou nomeá-la como "editLib.pas".

Abaixo disponibilizarei o código para que você possa copiar e testar:

unit editLib;interfaceuses   /// Acrescentando todas as units necessárias. Não podemos esquecer de   ///  acrescentar a unit que contém a classe a qual faremos referência em   ///  nosso helper.   ///  Uma observação importante é que este exemplo fiz para FireMonkey.    ///  A unit que contém o TEdit para VCL é Vcl.StdCtrls   FMX.Edit,    System.SysUtils;type   /// Criando o tipo TEditHelper, que será um Class Helper para a classe TEDIT.   ///  Sempre, após nomear nosso helper, informamos que é um Class Helper, e   ///  dizemos para qual classe ele servirá de apoio, que no nosso caso, é o   ///  TEdit. Isso fazemos através do "for", ou seja, nós estamos dizendo que   ///  estamos criando um Ajudante de Classe para o TEdit.   TEditHelper = Class Helper for TEdit   public      /// Aqui podemos criar todos os métodos necessários para a nossa classe.      ///  Neste exemplo, criamos um método que coloca todas as iniciais de      ///  palavras contidas no texto em maiúsculo.      procedure UpIniciais;   End;implementation{ TEditHelper }procedure TEditHelper.UpIniciais;var   vStr: String; // Variável auxiliar para a conversão do texto.   i: Integer; // Contador para o loop que percorerá o texto.begin   /// Limpando possíveis espaços no início e fim do texto.   ///  Lembrando que, aqui temos acesso a todas as funções e propriedades   ///  da classe a qual estamos criando o helper. A propriedade Text poderia   ///  ser chamada diretamente, mas coloquei "Self.Text" para melhor   ///  compreensão de que é como se estivéssemos dentro da classe TEdit.   Self.Text:= Trim (Self.Text);   /// Loop para copiar o texto em uma variável auxiliar, colocando as iniciais   ///  em maiúsculo.   for i := 1 to Self.Text.Length do   begin      /// Verificando se o caracter é inicial de palavra      if (i = 1) or ((i > 1) and (vStr[i-1] = ' ')) then         /// Copiando o caracter em maiúsculo.         vStr:= vStr + AnsiUpperCase(Self.Text[i])      else         /// Copiando o caracter sem alteração.         vStr:= vStr + Self.Text[i];   end;   /// Devolvendo para o Edit o texto já com as iniciais em maiúsculo.   Self.Text:= vStr;end;end.

Após a implementação do código do nosso helper, basta adicionarmos editLib na unit que contém o nosso TEdit, e a qualquer momento chamamos a função pelo próprio nome do TEdit.

Por exemplo: Edit1.UpIniciais; como mostra na imagem abaixo:

Você poderá acrescentar quantos métodos precisar ao seu Helper e com isso ter uma super biblioteca acrescentada à sua classe, de forma muito prática!

Gostou da dica? Conta aqui depois o resultado!

       Jonas Guimarães - Analista de Sistemas

      Contato: guimaraes.developer@gmail.com

10 Abr 2021

Class Helper - Um poderoso Recurso

Comentar
Facebook
WhatsApp
LinkedIn
Twitter
Copiar URL

Tags

class delphi helper programação

Quem viu também curtiu

19 de Ago de 2021

Por qual motivo há um consumo excessivo de memória RAM pelos aplicativos?

06 de Set de 2020

Porque troquei meu computador por um notebook potente e o Lightroom e Photoshop ficaram muito lentos!

21 de Fev de 2022

Afinal, qual memória devo trocar?