Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Pintar Celdas DBGrid si cumple cierta condicion. (https://www.clubdelphi.com/foros/showthread.php?t=76718)

Lenny 21-11-2011 22:34:30

Pintar Celdas DBGrid si cumple cierta condicion.
 
Buenas y muchas gracias de antemano...

Tengo un JvDBUltimGrid el cual tiene entre otra info los meces del año, donde por cada registro a traves de unos DBCombobox (con los meces del año) escrivo el valor "Control", la pregunta es, bueno, si se puede cambiar de color la celda que cumpla con cierto valor ó condicion? en este caso todas las celdas que digan "Control" ó alguna fecha, solo necesito pintar esos cuadros, no las columnas ni las filas...

De Antemano Muchas Gracias...

PD: Utilizo Delphi 2010, Zeos, MySQL

ecfisa 21-11-2011 22:53:36

Hola Lenny.

Revisá si te sirve este enlace

Un saludo.

Lenny 21-11-2011 23:27:52

Solucionado!!!
 
Muchas gracias!!! busque mucho por el foro y no di con esta respuesta, con algunos ajustes a lo que necesito el codigo quedo de esta manera:

Código Delphi [-]
 
procedure TObjetivosCalidad.JvDBUltimGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if (Column.Field.AsString > '') and
     (Column.Field is TStringField) and
     (Column.Field.Value = 'Control') then
  begin
     JvDBUltimGrid1.Canvas.Brush.Color:= clRed;
     JvDBUltimGrid1.Canvas.Font.Color:= clWhite;
     JvDBUltimGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
  end;
end;

En el fondo lo que hace (y necesito) es buscar en todo el JvDBGrid (igual en los DBGrid normales) las celdas que digan "Control" y pintarlas de algun color, en este caso rojo, muchas gracias!!!

krewer 27-11-2015 21:44:19

Cita:

Empezado por Lenny (Mensaje 419034)
Muchas gracias!!! busque mucho por el foro y no di con esta respuesta, con algunos ajustes a lo que necesito el codigo quedo de esta manera:

Código Delphi [-]
 
procedure TObjetivosCalidad.JvDBUltimGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if (Column.Field.AsString > '') and
     (Column.Field is TStringField) and
     (Column.Field.Value = 'Control') then
  begin
     JvDBUltimGrid1.Canvas.Brush.Color:= clRed;
     JvDBUltimGrid1.Canvas.Font.Color:= clWhite;
     JvDBUltimGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
  end;
end;

En el fondo lo que hace (y necesito) es buscar en todo el JvDBGrid (igual en los DBGrid normales) las celdas que digan "Control" y pintarlas de algun color, en este caso rojo, muchas gracias!!!

Lenny, a finales de 2015 y tu comenteario me salvo la vida, mil gracias :D

Lenny 07-04-2022 01:49:10

2022 y recién veo tu comentario... justo estaba buscando lo mismo... jajajaja saludos!


La franja horaria es GMT +2. Ahora son las 00:48:49.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi