![]() |
Panel con color degradado
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,Gracias.... |
Simplemente pasándole al método "PintarDegradadoH" el Canvas del panel.
|
Gracias por contestar... He puesto en el evento Click del Panel la llamada a PintarDegradado Código:
void __fastcall TForm1::Panel1Click(TObject *Sender) |
this->canvas enfoca al canvas del form, no del panel. Prueba Panel1->canvas
|
Gracias po contestar
he puesto Código:
PintarDegradadoH(Panel1->Canvas,(TRect &)this->GetClientRect(),clBtnFace,clBlack,95);'TCustomControl::Canvas is not accesible' 'Type mistmatch in parameter 'Canvas' (wanted 'TCanvas *', got 'TCanvas *') |
El problema es que el Canvas de un TPanel no es accesible. Pero nada te impide crear uno nuevo.
Vamos a realizar algún cambio en la función de degradado y reescribimos el evento OnPaint Código:
void TForm1::PintarDegradadoH(TCanvas *Canvas, TRect& rect, TColor c1, TColor c2, |
Gracias por contestar escafranda ..
de esa manera en el panel se degrada el color pero la degradacion no es completa si el el Panel no es lo suficientemente Ancho...si la degradacione es de Azul a Rojo la degradacion no llega al rojo si el ancho es menor de Aprox Whith = 350 (que es lo que yo necesitaba) Gracias |
Vuelve a comprobarlo. Edite el mensaje con algún cambio mas en la función de degradado. A mi me funciona Ok.
![]() Saludos. ;) |
Como siempre tenias razon..funciona correctamente
la culpa era mia habia cometido un error:( Muchas Gracias |
| La franja horaria es GMT +2. Ahora son las 10:45:24. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi