IDEをみて気づくのが下の図の部分です。構造と書いてあり、バックが薄くグラデーションしています。右側にはピンのアイコンもあります。TDockTabSetのときも同じような描画をしています(前セクション参照)。これは、どうやって書いているのでしょう?
TDockTabSetからVCLのコードを追っていくと、描画部で、GradientFillCanvasという関数を呼んでいるのがわかります。この関数はGraphUtilユニットにあります。このユニットを見てみると、いくつかの関数が新たに足されていることがわかります。グラデーションを描画する関数や、ビットマップをスケーリングする関数や、webカラーを変換する関数などがあります。
その前方にはWebカラーの名前定義もあります。
今回は、GraphUtilユニットにあるGradientFillCanvasを使ってグラデーションをお手軽に描画してみたいと思います。筆者がDelphiを始めたころはこのようなライブラリはありませんでした。そのため、自分でグラデーションのコンポーネントをコーディングしていました。ちょっと懐かしい感じです。
Uses節に GraphUtilを足します。またFormのOnPaintにコードを記述します。グラデーションの開始色はclActiveCaptionにしました、終了色は、GraphUtilユニットにある、GetShadowColorという関数を使って暗い色を求めて終了色にしています。引数に元の色と、暗くする度合いを渡すと、元の色を暗くした色を戻す関数です。逆に明るい色を求めたい場合はGetHighlightColorというメソッドがあるのでそちらを使うようです。カラーが求まったら、GradientFillCanvasで塗りつぶします。
実行すると、下のようになります。昔のインストール画面の背景ぽくなりました。