Como programador Delphi, se você deseja melhorar ainda mais seu nível de programação, você deve dominar como escrever controles. Este artigo apresentará alguns métodos e padrões básicos de escrita de controles para iniciantes por meio de um exemplo simples.
Este controle de exemplo é denominado TLeiLabel e adiciona duas funções práticas com base no TLabel: uma é fazer com que o texto tenha uma forma tridimensional e a outra é fazer com que o texto tenha um atributo de hiperlink. Vamos implementar essas funções passo a passo.
1. Faça com que o texto tenha uma forma tridimensional
Primeiro defina o tipo T3DEffect e o atributo Style3D da seguinte forma:
T3DEffect=(Normal, Elevado, Reduzido, Sombreado);
PRoperty Style3D:T3DEffect leitura FStyle3D gravação SetStyle3D padrão Normal;
Em seguida, defina a variável em private: "FStyle3D:T3DEffect;" e defina o método SetStyle3D() da seguinte forma.
procedimento TLeiLabel.SetStyle3D(Valor: T3DEffect);
começar
se FStyle3D <> valor então
começar
FStyle3D := valor;
invalidate; //Indica que o controle será redesenhado
fim;
fim;
Além disso, para texto com sombras, devem ser definidos os deslocamentos da sombra, ShadeXOffSet e ShadeYOffSet:
propriedade ShadowXOffSet: inteiro lido FXOffSet gravação SetFXOffSet padrão 5;
propriedade ShadowYOffSet: inteiro lido FYOffSet gravação SetFYOffSet padrão -5;
Os métodos de escrita SetFXOffSet() e SetFYOffSet() são semelhantes ao SetStyle3D() acima.
Para redesenhar um controle, geralmente você precisa sobrecarregar o método Paint. Aqui estamos apenas redesenhando o texto. Precisamos apenas sobrecarregar o método DoDrawText.
A declaração de DoDrawText é colocada em Protected:
procedimento DoDrawText(var Rect: TRect; Flags: substituição de inteiro longo);
Aqui DoDrawText() desenha texto diferente de acordo com quatro tipos (normal, elevado, rebaixado e sombra).
2. Faça com que o texto tenha atributos de hiperlink
Defina um URL de atributo para representar o URL ou endereço de e-mail a ser vinculado.
URL da propriedade: String lida FURL gravação SetURL;
Escreva o método SetURL da seguinte forma:
procedimento TLeiLabel.SetURL(Valor: String);
Começar
se FURL <> Valor então FURL := Valor ;
se FURL <> 'então
Cursor := crHandPoint;
fim;
Ao clicar neste Label, é necessário abrir um navegador ou uma ferramenta de envio e recebimento de e-mail, o que requer a sobrecarga do método Click.
Clique em Procedimento;
procedimento TLeiLabel.Click;