SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Britomartis en Jueves 17 de Abril de 2014, 16:25

Título: Poner color a las filas del DBGrid
Publicado por: Britomartis en Jueves 17 de Abril de 2014, 16:25
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.
Título: Re:Poner color a las filas del DBGrid
Publicado por: juanC2 en Jueves 17 de Abril de 2014, 17:00
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);
}
Título: Re:Poner color a las filas del DBGrid
Publicado por: nicolas2109 en Domingo 9 de Julio de 2017, 09:54
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
Título: Re:Poner color a las filas del DBGrid
Publicado por: chenech en Lunes 10 de Julio de 2017, 13:39
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.
Título: Re:Poner color a las filas del DBGrid
Publicado por: nicolas2109 en Martes 11 de Julio de 2017, 00:00
Correcto Chenech, el evento esta bien. Problema que variables uso para llamarlo-> TRect &Rect, TField *Field, TGridDrawState State
Saludos
Título: Re:Poner color a las filas del DBGrid
Publicado por: chenech en Martes 11 de Julio de 2017, 18:19
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.