Buenas...
Buscando he encontrada este codigo (Gracias Cesar) que realiza un degradado del color (de Azul a Rojo) de un Form.
Código:
void TForm1::PintarDegradadoH(TCanvas *canvas, TRect& rect, TColor c1, TColor c2,
int nTonos)
{
c1 = static_cast<TColor>( ColorToRGB(clNavy) );
c2 = static_cast<TColor>( ColorToRGB(clRed) );
//rojo
int Rf = GetRValue(c1);
int Rd = GetRValue(c2)-Rf;
// verde
int Gf = GetGValue(c1);
int Gd = GetGValue(c2)-Gf;
// azul
int Bf = GetBValue(c1);
int Bd = GetBValue(c2)-Bf;
Canvas->Brush->Style =bsClear;
canvas->Unlock();
int R, G, B;
float incremento = (float)nTonos/ (rect.right>1?rect.right:1);
for (int i= rect.left; i < rect.right; i++)
{
R = Rf + MulDiv(incremento * i , Rd , nTonos);
G = Gf + MulDiv(incremento * i , Gd , nTonos);
B = Bf + MulDiv(incremento * i , Bd , nTonos);
//Canvas->Pen->Color = (Graphics::TColor)RGB(R, G, B);
canvas->Pen->Color = (TColor) RGB(R, G, B);
Canvas->MoveTo(i, rect.Bottom );
Canvas->LineTo(i, rect.Top);
Canvas->FrameRect(rect);
}
canvas->Brush->Color = clRed;
Canvas->DrawFocusRect(rect);
canvas->Lock();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
PintarDegradadoH(this->Canvas,(TRect )this->GetClientRect(),clBtnFace,clBlack,95);
}
Necesito hacer lo mismo pero solo en un Panel de ese Form ...Alguien puede Indicarme como puedo adaptar el codigo para que realize el degradado solo en el panel
Gracias....