En tant que programmeur Delphi, si vous souhaitez améliorer davantage votre niveau de programmation, vous devez maîtriser l'écriture de contrôles. Cet article présentera quelques méthodes et modèles de base d'écriture de contrôles pour les débutants à travers un exemple simple.
Cet exemple de contrôle s'appelle TLeiLabel, et il ajoute deux fonctions pratiques sur la base de TLabel : l'une consiste à donner au texte une forme tridimensionnelle et l'autre est à donner au texte un attribut de lien hypertexte. Implémentons ces fonctions étape par étape.
1. Donnez au texte une forme tridimensionnelle
Définissez d'abord le type T3DEffect et l'attribut Style3D comme suit :
T3DEffect=(Normal, Élevé, Abaissé, Ombré) ;
PRerty Style3D : T3DEffect lire FStyle3D écrire SetStyle3D par défaut Normal ;
Définissez ensuite la variable en privé : "FStyle3D:T3DEffect;" et définissez la méthode SetStyle3D() comme suit. C'est également le format général pour l'écriture des méthodes :
procédure TLeiLabel.SetStyle3D(Valeur : T3DEffect);
commencer
si FStyle3D <> valeur alors
commencer
FStyle3D := valeur ;
invalidate; //Indique que le contrôle sera redessiné
fin;
fin;
De plus, pour le texte avec des ombres, les décalages de l'ombre, ShadeXOffSet et ShadeYOffSet, doivent être définis :
propriété ShadowXOffSet : entier lu FXOffSet écriture SetFXOffSet par défaut 5 ;
propriété ShadowYOffSet : entier lu FYOffSet écriture SetFYOffSet par défaut -5 ;
Les méthodes d'écriture SetFXOffSet() et SetFYOffSet() sont similaires à SetStyle3D() ci-dessus.
Pour redessiner un contrôle, il faut généralement surcharger la méthode Paint. Ici, nous redessinons simplement le texte. Il suffit de surcharger la méthode DoDrawText.
La déclaration de DoDrawText est placée dans Protected :
procédure DoDrawText(var Rect : TRect ; Indicateurs : Longint override) ;
Ici, DoDrawText() dessine différents textes selon quatre types (normal, en relief, en retrait et ombre).
2. Faire en sorte que le texte ait des attributs de lien hypertexte
Définissez une URL d'attribut pour représenter l'URL ou l'adresse e-mail à lier.
URL de la propriété : chaîne lecture FURL écriture SetURL ;
Écrivez la méthode SetURL comme suit :
procédure TLeiLabel.SetURL(Valeur : String);
Commencer
si FURL <> Valeur alors FURL := Valeur ;
si FURL <> ' alors
Curseur := crHandPoint;
fin;
En cliquant sur ce Label, vous devez ouvrir un navigateur ou un outil d'envoi et de réception de mail, ce qui nécessite de surcharger la méthode Click.
Procédure Cliquez sur Remplacer ;
procédure TLeiLabel.Click ;