Borland C ++ Builder FAQ
The content The last update: 12/12/2008

How to implement a gradient?

The author: kenai
The initial link: - - -

Graphics:: TBitmap *Gradient = new Graphics:: TBitmap (); 
Gradient-> Height = 50; 
Gradient-> Width = 50; 
int h=Gradient-> Height; 
int w=Gradient-> Height; 
struct tRGB {int R, G, B;}; 
tRGB Color1, Color2; 

Color1.R=214; 
Color1.G=50; 
Color1.B=50; 

Color2.R=92; 
Color2.G=44; 
Color2.B=220; 

double Rg = (Color2.R-Color1.R); 
double Gg = (Color2.G-Color1.G); 
double Bg = (Color2.B-Color1.B); 
Rg / = w; 
Gg / = w; 
Bg / = w; 

for (int i=0; i <w+1; i ++) 
for (int i2=0; i2 <h+1; i2 ++) 
{ 
Gradient-> Canvas-> Pixels [i] [i2] =TColor (RGB (Color1.R+Rg*i,Color1.G+Gg*i,Color1.B+Bg*i)); 
}
Form1-> Canvas-> Draw (0,0, Gradient); 

delete Gradient;