Delphi - ¿como coloreo filas alternativas dbgrid?

 
Vista:

¿como coloreo filas alternativas dbgrid?

Publicado por hugo conde (10 intervenciones) el 30/01/2004 03:46:28
Tengo dos preguntas: por un lado me gustaría que me facilitaran un código que imprima las filas de un dbgrid en dos colores alternativamente. lo he intentado hacer con el siguiente código

if (not ((gdSelected in state) or (gdFocused in state))) then
if (prueba) then
grid_informe_gasto.canvas.brush.color:=clInactiveCaption
else
grid_informe_gasto.canvas.brush.color:=clPaleGreen;
prueba:=not prueba;
grid_informe_gasto.DefaultDrawColumnCell(Rect, DataCol, Column, State);

// la variable prueba es global inicializada a true.

pero este código no solono me imprime de color la primera fila (hasta que selecciono dicha fila), sino que además si voy pulsando en las distintas celdas, va cambiando los colores alternativamente. además con este código lo que me está imprimiendo en colores distintos son las columnas y no las filas.
.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿como coloreo filas alternativas dbgrid?

Publicado por HSL (57 intervenciones) el 01/02/2004 21:27:52
Intenta lo siguiente...

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);

begin
if Column.Field.DataSet.FieldByName('Size').Value <> 10 then
DBGrid1.canvas.brush.color:=clGrayText

else

DBGrid1.canvas.brush.color:=clMaroon;
DBGrid1.DefaultDrawColumnCell(Rect, datacol, Column, state);
end;

end.

{ se crea una condicion, la cual, si se cumple dara como resultado los
colores deseado a las filas.}
//Pon la propiedad DefaultDraw del dbgrid a false
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar