| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
betogu84 Ens

Registrado: 30 Abr 2003Mensajes: 26Ubicación: Barranquilla
|
Publicado: Lun 09 Jun, 2003 5:38 pm Asunto: Stringgrid |
|
|
Hola:
Yo estoy utilizando el siguiente codigo para ponerle color al Stringrid pero quiero el color no lo tomen la primera fila y la primera columna, sino todas las demas, como lo hago??, no he podido.
void __fastcall TForm1::Button2Click(TObject *Sender)
{
StringGrid1 ->ColCount = 2;//dos columnas
StringGrid1->Cells[0][0] = "Alumno"; // la 1º
StringGrid1->Cells[1][0] = "Edad";
StringGrid1 ->ColWidths[0] = 75;//tamaño
StringGrid1 ->ColWidths[1] = 100;
for (int i = 1; i < 10; i ++)
{
StringGrid1->RowCount = i + 1; // incrementa la SG
StringGrid1->Cells[0][i]=i;
StringGrid1->Cells[1][i]=17+i;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
// Puntero al Grid que ha llamado al evento
TRect rect = Rect;
if (State.Contains(gdSelected))
{
StringGrid1->Canvas->Brush->Color = clGreen;
StringGrid1->Canvas->FillRect(rect);
StringGrid1->Canvas->Font->Color = clHighlightText;
}
// Pinta el resto de las celdas
else
{
StringGrid1->Canvas->Brush->Color = ARow & 0x01 ? StringGrid1->Color : TColor(0xe0ffe0);
StringGrid1->Canvas->FillRect(rect);
StringGrid1->Canvas->Font->Color = StringGrid1->Font->Color;
}
// Dibujar texto centrado horizontal y verticalmente con fondo transparente
StringGrid1->Canvas->Brush->Style = bsClear;
DrawText(StringGrid1->Canvas->Handle, StringGrid1->Cells[ACol][ARow].c_str(),
StringGrid1->Cells[ACol][ARow].Length(), &rect,
DT_CENTER | DT_VCENTER | DT_SINGLELINE );
}
//---------------------------------------------------------------------------
Gracias de antemano por su ayuda.
Mario |
|
| Volver arriba |
|
 |
Marky Master

Registrado: 28 Dic 2002Mensajes: 251Ubicación: Las Rozas - Madrid (España)
|
Publicado: Lun 09 Jun, 2003 6:15 pm Asunto: |
|
|
Hola!!!
La solución es tan fácil como cambiar esta línea:
| Código: |
StringGrid1->Canvas->Brush->Color = ARow & 0x01 ? StringGrid1->Color : TColor(0xe0ffe0);
|
por esta otra:
| Código: |
if(ARow>0 && ACol>0)
{
StringGrid1->Canvas->Brush->Color = ARow & 0x01 ? StringGrid1->Color : TColor(0xe0ffe0);
}
|
Eso es todo ;-)
Un saludo!!! |
|
| Volver arriba |
|
 |
betogu84 Ens

Registrado: 30 Abr 2003Mensajes: 26Ubicación: Barranquilla
|
Publicado: Lun 09 Jun, 2003 9:02 pm Asunto: Gracias!! |
|
|
Muchisimas gracias, se da cuenta uno lo facil que era y uno metiendose por otros caminos mas dificiles, menos mal existe este foro para solucionar mas facil nuestras dudas.
Nos vemos pronto y de nuevo gracias. |
|
| Volver arriba |
|
 |
|