Ver Mensaje Individual
  #1  
Antiguo 16-06-2010
pablopessoa pablopessoa is offline
Miembro
 
Registrado: may 2008
Ubicación: Argentina
Posts: 162
Reputación: 16
pablopessoa Va por buen camino
Pintar fila completa en un DBgrid segun un dato

Saludos!

tengo un dbgrid al que quiero que se le pinte la fila segun un valor de un campo de su datasource.
Por ejemplo:
si el campo "habilitado" del datasource es True se pinta de verde clarito.
Mirando en los post del foro lo pude hacer con el siguiente codigo :
Código Delphi [-]
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
       if Column.Field.Dataset.FieldbyName('habilitado').AsBoolean then
       If (gdFocused in State) then
         dbgrid1.canvas.brush.color := clGreen
       else
         dbgrid1.canvas.brush.color := clMoneyGreen;

     dbgrid1.DefaultDrawColumnCell(rect,DataCol,Column,State);
end;

cuando se dibuja la grilla efectivamente muestra la fila en verde clarito para las filas que cumplen con la condicion.
El problema es que cuando selecciono una fila, solo me pinta de verde oscuro la primer columna, no pinta toda la fila.
Como puedo hacer para que pinte toda la fila de verde oscuro cuando selecciono la fila?
Muchas gracias!!
Responder Con Cita