Delphi プログラマとして、プログラミング レベルをさらに向上させたい場合は、コントロールの書き方をマスターする必要があります。この記事では、初心者向けにコントロールの基本的な書き方とパターンを簡単な例を通して紹介します。
このコントロール例は TLeiLabel と呼ばれるもので、TLabel をベースに、テキストを立体化する機能と、テキストにハイパーリンク属性を持たせる機能の 2 つを追加しています。これらの関数を段階的に実装してみましょう。
1.文字を立体的にする
まず、次のようにタイプ T3DEffect と属性 Style3D を定義します。
T3DEffect=(通常、上昇、下降、影付き);
PROperty Style3D:T3DEffect 読み取り FStyle3D 書き込み SetStyle3D デフォルト Normal;
次に、プライベートで変数「FStyle3D:T3DEffect;」を定義し、次のように SetStyle3D() メソッドを設定します。これは、メソッドを記述するための一般的な形式でもあります。
プロシージャ TLeiLabel.SetStyle3D(値: T3DEffect);
始める
FStyle3D <>値の場合
始める
FStyle3D := 値;
validate; // コントロールが再描画されることを示します。
終わり;
終わり;
さらに、影のあるテキストの場合、影のオフセット、ShadeXOffSet および ShadeYOffSet を定義する必要があります。
プロパティ ShadowXOffSet: 整数 読み取り FXOffSet 書き込み SetFXOffSet デフォルト 5;
プロパティ ShadowYOffSet: 整数 読み取り FYOffSet 書き込み SetFYOffSet デフォルト -5;
書き込みメソッド SetFXOffSet() および SetFYOffSet() は、上記の SetStyle3D() と似ています。
コントロールを再描画するには、通常、Paint メソッドをオーバーロードする必要があります。ここでは、DoDrawText メソッドをオーバーロードするだけです。
DoDrawText の宣言は Protected に配置されます。
プロシージャ DoDrawText(var Rect: TRect; Flags: Longint);
ここで DoDrawText() は 4 つのタイプ (通常、凸、凹、影) に応じて異なるテキストを描画します。
2. テキストにハイパーリンク属性を持たせる
リンク先の URL または電子メール アドレスを表す属性 URL を定義します。
プロパティ URL: 文字列読み取り FURL 書き込み SetURL;
SetURL メソッドを次のように記述します。
プロシージャ TLeiLabel.SetURL(値: 文字列);
始める
if FURL <> 値 then FURL := 値 ;
if FURL <> ' then
カーソル := crHandPoint;
終わり;
このラベルをクリックするときは、ブラウザまたはメール送受信ツールを開く必要があり、そのためには Click メソッドをオーバーロードする必要があります。
手順 クリック;
プロシージャ TLeiLabel.Click;