Az alábbi példaprogram bemutatja, hogy hogyan lehet egy színátmenetes Formot létrehozni.
A példában a Form színe feketéből áttűnik a színválasztó párbeszédablakban (ColorDialogBox)
megadott színbe.
A színek manipulálására a GetRValue(), GetBValue(), GetGValue() és az RGB() Win32 API függvényeket, a Form megfestésére pedig a TCanvas.MoveTo() és a TCanvas.LineTo() eljárásokat használjuk.
unit Unit1;

interface

uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type
TForm1 = class(TForm)
   Button1: TButton;
   ColorDialog1: TColorDialog;
   procedure Button1Click(Sender: TObject);b
   procedure FormPaint(Sender: TObject);
   procedure FormCreate(Sender: TObject);
private
   { Private declarations }
   EndColor:TColor;
public
   { Public declarations }
end;

var
   Form1: TForm1;

implementation

  {$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
   {A végszín bekérése}
   ColorDialog1.Execute;
   EndColor := ColorDialog1.Color;
   {A Form Paint eseményének meghívása}
   Repaint;
end;

procedure TForm1.FormPaint(Sender: TObject);
var
   x,GradientDistance,GradientWidth : Integer;
   tmpColor : TColor;
   NewRed,NewGreen,NewBlue : Byte;
   EndRed,EndGreen,EndBlue : Byte;
begin
   {Ha nincs beállítva végszín, kilép.}
   if EndColor = clBlack then Exit;
   {A tmpcolor inicializálása}
   tmpColor := EndColor;
   {A színátmenet hossza}
   GradientDistance := Height;
   {A színátmenet szélessége}
   GradientWidth := Width;
   {A vörös, zöld és kék kezdőértékei}
   EndRed := GetRValue(EndColor);
   EndBlue := GetBValue(EndColor);
   EndGreen := GetGValue(EndColor);
   {Átmenet a kezdő és a végső színérték közt}
   for x := 1 to GradientDistance do
   begin
     {A szín vörös, zöld és kék összetevőinek
     beállítása az aktuális távolságnak a
     teljes távolsághoz viszonyított arányában}
     NewRed := (x*EndRed) div GradientDistance;
     NewBlue := (x*EndBlue) div GradientDistance;
     NewGreen := (x*EndGreen) div GradientDistance;
     {Az új szín megadása a megváltozott vörös, zöld
     kék színeknek megfelelően}
     tmpColor := RGB(NewRed,NewGreen,NewBlue);
     {Az új festőszín beállítása}
     Canvas.Pen.Color := tmpColor;
     {A vonalnak az új színnel való megrajzolása}
     Canvas.MoveTo(0,x);
     Canvas.LineTo(GradientWidth,x);
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  {A végszín kezdeti értékének megadása}
   EndColor := clBlack;
end;
end.