Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   colorear filas dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=16960)

merlin 17-12-2004 18:07:07

colorear filas dbgrid
 
hola a todos los foreros.

mi problema creo q es muy tipico por lo q he visto en otros hilos aunq en ningunno he encontrao la manera de solucionarlo.

Yo tengo dbgrid relaccionado con una tabla (dbase) lo q quiero es q en los registro q el campo tipo='S' se coloreen de rojo y los de tipo='E' que se queden con el color de siempre mi codigo es el siguiente:

Código:

procedure TAPUNTES.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
 if (TAPUNTES.FieldByName ('TIPO').AsString ='S') and (gdSelected in State) then
    DBGrid1.Canvas.Font.Color := clRed;

 DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

pero mi problema es que no lo termina de hacer bien porque cuando yo habro el formulario solo me ha pintado el ultimo que cumple la condicion y todos los demas los ha dejado con el color de siempre lo q si hace es q cuando me muevo por el dbgrid los colorea pero solo cuando estoy en el si me cambio se quita el color ¿como puedo hacer para q de primeras me salgan todos pintalos y q no pierdan el color cuando paso por ellos?

roman 17-12-2004 18:30:55

Cita:

Empezado por merlin
[...]los colorea pero solo cuando estoy en el si me cambio se quita el color


Pues hace lo que le estás diciendo:


Cita:

Empezado por merlin
Código Delphi [-]
if (TAPUNTES.FieldByName ('TIPO').AsString ='S') and (gdSelected in State)  then
    DBGrid1.Canvas.Font.Color := clRed;

Es decir, le estás diciendo, "pon la fuente de color rojo si tipo='s' y la fila está seleccionada"

Quita esa condición para que te ponga el texto rojo en cualquier momento.

// Saludos


La franja horaria es GMT +2. Ahora son las 11:32:46.

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