Como programador de Delphi, si desea mejorar aún más su nivel de programación, debe dominar cómo escribir controles. Este artículo presentará algunos métodos y patrones básicos de escritura de controles para principiantes a través de un ejemplo simple.
Este control de ejemplo se llama TLeiLabel y agrega dos funciones prácticas sobre la base de TLabel: una es hacer que el texto tenga una forma tridimensional y la otra es hacer que el texto tenga un atributo de hipervínculo. Implementemos estas funciones paso a paso.
1.Haz que el texto tenga una forma tridimensional.
Primero defina el tipo T3DEffect y el atributo Style3D de la siguiente manera:
T3DEffect=(Normal, Elevado, Reducido, Sombreado);
PRoperty Style3D:T3DEffect leer FStyle3D escribir SetStyle3D predeterminado Normal;
Luego defina la variable en privado: "FStyle3D:T3DEffect;" y configure el método SetStyle3D() de la siguiente manera. Este es también el formato general para escribir métodos:
procedimiento TLeiLabel.SetStyle3D(Valor: T3DEffect);
comenzar
si FStyle3D <> valor entonces
comenzar
FStyle3D := valor;
invalidar; // Indica que el control se volverá a dibujar
fin;
fin;
Además, para texto con sombras, se deben definir los desplazamientos de la sombra, ShadeXOffSet y ShadeYOffSet:
propiedad ShadowXOffSet: entero leer FXOffSet escribir SetFXOffSet predeterminado 5;
propiedad ShadowYOffSet: entero leído FYOffSet escrito SetFYOffSet predeterminado -5;
Los métodos de escritura SetFXOffSet() y SetFYOffSet() son similares a SetStyle3D() arriba.
Para volver a dibujar un control, generalmente necesita sobrecargar el método Paint. Aquí solo estamos redibujando el texto. Solo necesitamos sobrecargar el método DoDrawText.
La declaración de DoDrawText se coloca en Protegido:
procedimiento DoDrawText(var Rect: TRect; Banderas: Longint);
Aquí DoDrawText() dibuja texto diferente según cuatro tipos (normal, elevado, empotrado y sombreado).
2.Hacer que el texto tenga atributos de hipervínculo
Defina una URL de atributo para representar la URL o dirección de correo electrónico que se vinculará.
URL de propiedad: cadena leída FURL escritura SetURL;
Escriba el método SetURL de la siguiente manera:
procedimiento TLeiLabel.SetURL(Valor: Cadena);
Comenzar
si FURL <> Valor entonces FURL := Valor;
si FURL <> ' entonces
Cursor := crHandPoint;
fin;
Al hacer clic en esta etiqueta, debe abrir un navegador o una herramienta de envío y recepción de correo, lo que requiere sobrecargar el método Click.
Procedimiento Clic; Anular;
procedimiento TLeiLabel.Click;