FMX.Colors
FMX.Colors ユニットは、FireMonkey の色関連のクラスやメソッドが登録されているユニットです。
FMX.Colors ユニットの有用な機能を紹介していくシリーズです!
TGradientEdit
TGradientEdit はグラデーションブラシ用の Gradation を作ってくれるコントロールです。
↑これは、作成された Gradient を TRectangle の Fill.Gradient に設定しています。
使い方
コントロールは Colors カテゴリーに登録されているので、ドロップして普通のコントロールと同じように使えます。
TGradientEdit はクリックすると「点(TGradient.Point)」が増えます(プログラムで増やすこともできます)。
その Point に IntColor というプロパティがあるので、そこに TAlphaColor を指定すると Gradation を作ってくれます。
できあがったグラデーションを使いたいコントロールの Fill.Gradation に代入します。
procedure TForm1.GradientEdit1Change(Sender: TObject);
begin
var Index := GradientEdit1.CurrentPoint;
if Index < 0 then
Exit;
var P := GradientEdit1.Gradient.Points[Index];
// 始点を赤に
if Index = 0 then
P.IntColor := TAlphaColors.Red;
// 2個目の点をオレンジに
if Index = 1 then
P.IntColor := TAlphaColors.Orange;
// Rectangle の Fill に代入
Rectangle1.Fill.Kind := TBrushKind.Gradient;
Rectangle1.Fill.Gradient := GradientEdit1.Gradient;
end;
ちなみに、ドラッグしている点を下方向に引っ張ると、その点を消去できます。
プロパティ・イベント
ColorPicker プロパティ
ColorPicker プロパティを使って、TColorPicker と紐付ける事ができます。
点の色や現在の…が変わると、TColorPicker.Color に IntColor の値を代入してくれます。
TColorPicker 側から TGradientEdit の点の色を操ったりはできません。
正直何に使うのか判りません。
CurrentPoint プロパティ
CurrentPoint プロパティは、現在ユーザーが操作している Point のインデックスを示します。
Gradient プロパティ
Gradient プロパティが、TGradientEdit の肝となるプロパティです。
点の情報や点の色などは全てこのプロパティで示される TGradient に格納されています。
OnChange イベント
OnChange イベントは点が増減したりドラッグによって点の位置が変わったときに呼び出されます。
OnSelectPoint イベント
OnSelectPoint イベントは点の選択状態(=ユーザーが操作している点)が変わった時に呼ばれます。
おわりに
視覚的に Gradation ブラシを作りたいときに便利ですね。
実際、オブジェクト・インスペクタから呼び出せるブラシデザイナではこれが使われています。
コミュニティ紹介
Delphi のコミュニティを紹介します。
Delphi Discord Server(最も活発)
Delphi に関する質問・最新情報・雑談など、とにかく情報が早いコミュニティです。
お気軽に参加できます。
Delphi Discord Server 紹介ページ
※こちらは招待リンクそのものではありません。招待リンクは遷移先ページにあります。
その他のコミュニティ
Qiita のこちらの記事に、日本語圏で参加しやすいコミュニティをまとめています。



