GraphUtil の利用 - Delphi 2005

GraphUtilのグラデーション

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


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


その前方にはWebカラーの名前定義もあります。


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

まず、アプリケーションを新規作成します。


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


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



著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2018-02-02
作成日: 2005-01-01
iPentec all rights reserverd.