GraphUtil の利用

GraphUtilのグラデーション

IDEをみて気づくのが下の図の部分です。構造と書いてあり、バックが薄くグラデーションしています。右側にはピンのアイコンもあります。TDockTabSetのときも同じような描画をしています(前セクション参照)。これは、どうやって書いているのでしょう?
GraphUtil の利用:画像1

TDockTabSetからVCLのコードを追っていくと、描画部で、GradientFillCanvasという関数を呼んでいるのがわかります。この関数はGraphUtilユニットにあります。このユニットを見てみると、いくつかの関数が新たに足されていることがわかります。グラデーションを描画する関数や、ビットマップをスケーリングする関数や、webカラーを変換する関数などがあります。
GraphUtil の利用:画像2

その前方にはWebカラーの名前定義もあります。
GraphUtil の利用:画像3

今回は、GraphUtilユニットにあるGradientFillCanvasを使ってグラデーションをお手軽に描画してみたいと思います。筆者がDelphiを始めたころはこのようなライブラリはありませんでした。そのため、自分でグラデーションのコンポーネントをコーディングしていました。ちょっと懐かしい感じです。

まず、アプリケーションを新規作成します。
GraphUtil の利用:画像4

Uses節に GraphUtilを足します。またFormのOnPaintにコードを記述します。グラデーションの開始色はclActiveCaptionにしました、終了色は、GraphUtilユニットにある、GetShadowColorという関数を使って暗い色を求めて終了色にしています。引数に元の色と、暗くする度合いを渡すと、元の色を暗くした色を戻す関数です。逆に明るい色を求めたい場合はGetHighlightColorというメソッドがあるのでそちらを使うようです。カラーが求まったら、GradientFillCanvasで塗りつぶします。
GraphUtil の利用:画像5

 実行すると、下のようになります。昔のインストール画面の背景ぽくなりました。
GraphUtil の利用:画像6


AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2005-01-01
Copyright © 1995–2025 iPentec all rights reserverd.