• Viernes 29 de Marzo de 2024, 13:03

Autor Tema:  Poner color a las filas del DBGrid  (Leído 3550 veces)

Britomartis

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Poner color a las filas del DBGrid
« en: Jueves 17 de Abril de 2014, 16:25 »
0
Hola kiero poner color a las filas del DBGrid (una fila clara y otra oscura) para no mezclarlas al leer. Cómo lo puedo hacer. Y cómo puedo hacer para que cuadno se pase el cursor por encima de una fila esta cambie de color. Muchas gracias por ayudarme.

juanC2

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re:Poner color a las filas del DBGrid
« Respuesta #1 en: Jueves 17 de Abril de 2014, 17:00 »
0
void __fastcall TForm1::DBGrid1DrawDataCell(TObject *Sender, const TRect &Rect, TField *Field, TGridDrawState State)
{
  if ((Table1->RecNo % 2) == 0)
     DBGrid1->Canvas->Brush->Color = clGray;
  else
       DBGrid1->Canvas->Brush->Color = clWhite;

  if(State.Contains(gdSelected))
  { DBGrid1->Canvas->Font->Color = clWhite;
    DBGrid1->Canvas->Brush->Color = clNavy;
  }

  DBGrid1->DefaultDrawDataCell(Rect, Field, State);
}

nicolas2109

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re:Poner color a las filas del DBGrid
« Respuesta #2 en: Domingo 9 de Julio de 2017, 09:54 »
0
Buenos días:
Soy bastante novato y no logro que funcione el evento.
Sirve,  ¿ si uno de los campos de la fila tiene un valor ?
No encuentro que datos hay que pasar a la función.
¿ que variables o parámetros hay que pasar ?.
Saludos

chenech

  • Miembro activo
  • **
  • Mensajes: 96
    • Ver Perfil
Re:Poner color a las filas del DBGrid
« Respuesta #3 en: Lunes 10 de Julio de 2017, 13:39 »
0
No hay que pasar nada a la función, ve a propiedades del grid, busca el evento drawdatacell y copia el código que ha puesto juanC2, pero copia solo el código de la función, lo que está dentro de las { } y si el grid no se llama Grid1, pues lo cambias por el nombre que le hayas puesto.

Un saludo.

nicolas2109

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re:Poner color a las filas del DBGrid
« Respuesta #4 en: Martes 11 de Julio de 2017, 00:00 »
0
Correcto Chenech, el evento esta bien. Problema que variables uso para llamarlo-> TRect &Rect, TField *Field, TGridDrawState State
Saludos

chenech

  • Miembro activo
  • **
  • Mensajes: 96
    • Ver Perfil
Re:Poner color a las filas del DBGrid
« Respuesta #5 en: Martes 11 de Julio de 2017, 18:19 »
0
No tienes que pasar variables ni llamarlo, el evento se ejecuta automáticamente cada vez que se redibuja el grid (Ondraw), simplemente le das doble clic en el evento ese y añades el código de juanC2.