Wenn Sie als Delphi-Programmierer Ihr Programmierniveau weiter verbessern möchten, müssen Sie das Schreiben von Steuerelementen beherrschen. In diesem Artikel werden einige grundlegende Methoden und Muster zum Schreiben von Steuerelementen für Anfänger vorgestellt.
Dieses Beispielsteuerelement heißt TLeiLabel und fügt auf der Basis von TLabel zwei praktische Funktionen hinzu: Eine besteht darin, dem Text eine dreidimensionale Form zu verleihen, und die andere darin, dem Text ein Hyperlink-Attribut zu verleihen. Lassen Sie uns diese Funktionen Schritt für Schritt implementieren.
1. Geben Sie dem Text eine dreidimensionale Form
Definieren Sie zunächst den Typ T3DEffect und das Attribut Style3D wie folgt:
T3DEffect=(Normal, Angehoben, Abgesenkt, Beschattet);
Eigenschaft Style3D:T3DEffect lesen FStyle3D schreiben SetStyle3D Standard Normal;
Definieren Sie dann die Variable privat: „FStyle3D:T3DEffect;“ und legen Sie die SetStyle3D()-Methode wie folgt fest. Dies ist auch das allgemeine Format für Schreibmethoden:
procedure TLeiLabel.SetStyle3D(Value: T3DEffect);
beginnen
wenn FStyle3D <> Wert dann
beginnen
FStyle3D := value;
invalidate; // Zeigt an, dass das Steuerelement neu gezeichnet wird
Ende;
Ende;
Darüber hinaus müssen für Text mit Schatten die Offsets des Schattens, ShadeXOffSet und ShadeYOffSet, definiert werden:
Eigenschaft ShadowXOffSet: Ganzzahl lesen FXOffSet schreiben SetFXOffSet Standard 5;
Eigenschaft ShadowYOffSet: Ganzzahl lesen FYOffSet schreiben SetFYOffSet Standard -5;
Die Schreibmethoden SetFXOffSet() und SetFYOffSet() ähneln SetStyle3D() oben.
Um ein Steuerelement neu zu zeichnen, müssen Sie im Allgemeinen die Paint-Methode überladen. Hier zeichnen wir nur den Text neu. Wir müssen nur die DoDrawText-Methode überladen.
Die Deklaration von DoDrawText wird in Protected abgelegt:
procedure DoDrawText(var Rect: TRect; Flags: Longint);
Hier zeichnet DoDrawText() unterschiedlichen Text nach vier Typen (normal, erhaben, vertieft und Schatten).
2. Versehen Sie den Text mit Hyperlink-Attributen
Definieren Sie eine Attribut-URL, um die zu verlinkende URL oder E-Mail-Adresse darzustellen.
Eigenschafts-URL: String read FURL write SetURL;
Schreiben Sie die Methode SetURL wie folgt:
procedure TLeiLabel.SetURL(Value: String);
Beginnen
wenn FURL <> Wert, dann FURL := Wert;
if FURL <> ' dann
Cursor := crHandPoint;
Ende;
Wenn Sie auf dieses Label klicken, müssen Sie einen Browser oder ein Tool zum Senden und Empfangen von E-Mails öffnen, was eine Überlastung der Click-Methode erfordert.
Vorgehensweise Klicken Sie auf;
Prozedur TLeiLabel.Click;