Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

StringGrid

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: StringGrid Responder citando

Como puedo hacer para que cada una de las celdas de una columna tenga un color distinto en un StringGrid,o como puedo dibujar un rectangulo de color distinto para cada celda de una columna.

Si alguien me puede ayudar Gracias...

Volver arriba
Mensaje    Asunto: StringGrid Responder citando

Hola,

creo que no hay ninguna forma "directa" de hacerlo (al menos yo no la encontré). Así que lo hice pintando directamente sobre el canvas del StringGrid. Ésta es la función que utilizo en mi código:

void Pintar_Celda (int col, int fila, int color)
{
TRect celda;

celda=Rect(col*76, fila*25,(col+1)*76, (fila+1)*25);
if (color==1)
Form1->StringGrid1->Canvas->Brush->Color=clBlue;
else if (color==0)
Form1->StringGrid1->Canvas->Brush->Color=clRed;
Form1->StringGrid1->Canvas->FillRect(celda);
Form1->StringGrid1->Canvas->Rectangle(celda);
Form1->StringGrid1->Canvas->TextOut(celda.Left+2, celda.Top+2, VentanaReport->StringGrid1->Cells[col][fila]);

}

Espero que te sirva.

Volver arriba
Mensaje    Asunto: StringGrid Responder citando

HOLA:

Bueno un poco mas directo es con la propiedad OnDrawCell, cada vez que dibuja una celda.
Ejemp
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
if (ACol % 2 == 0) // si la columna es par
{
StringGrid1 ->Canvas ->Brush ->Color = clRed;
StringGrid1 ->Canvas ->FillRect(Rect);
DrawFrameControl( StringGrid1 ->Canvas ->Handle,&Rect,DFC_BUTTON,ARow);
// esto es muy interesante.
}
else// si no pon una imagen dentro de la celda
ImageList1->Draw(StringGrid1 ->Canvas,Rect.Left,Rect.Top,numero de imagen,true);


By.

Volver arriba
Mensaje    Asunto: StringGrid Responder citando

Tienes razón Toño, lo que ocurre es que yo tenía que pintar las celdas al pulsar un botón, y los colores dependían de si los valores de las celdas eran mayores o menores que unos límites. Es decir, no era al abrir el StringGrid. Y me pareció que así era más fácil.
Olvidé comentarlo.

Un saludo

Volver arriba
Mensaje    Asunto: StringGrid Responder citando

Muchas gracias a los dos por dedicar parte de su valioso tiempo a contestar mi duda, probaré y luego les cuento como me fue
chaooo y muchas gracias.
Volver arriba
Mensaje    Asunto: StringGrid Responder citando

tengo un stringGrid dinámico y cuando le asigno el evento OnDrawCell me reclama por un tipo de dato en la compilación. Anteriormente trabaje de ésta forma con otros componentes y no tuve problemas
no sé que sera

que puede ser?
chao y gracias

Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.