Ver Mensaje Individual
  #6  
Antiguo 21-04-2008
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Reputación: 23
gluglu Va por buen camino
Supongo que en tu caso particular, tienes puesto a False el campo RowSelect de la propiedad Options del DBGrid.

Entonces según tu código
Código Delphi [-]
if (state = [gdSelected]) ...
precisamente lo que estás haciendo es cambiar de color sólo la Celda (...y fila) que tiene selección en un momento determinado.

Sinceramente, no me he puesto a buscar la solución ya que yo utilizo siempre los DBGrid's con RowSelect a True.

Pero deberás de analizar si los campos que has de cambiar de color son de la fila que en ese momento está seleccionada, y cambiar su color según tus preferencias, no sólo a la celda que tiene la selección y por tanto el State a gdSelected.

Con el dgRowSelect a True basta con esto :

Código Delphi [-]
If (gdSelected in State) then DBGrid1.Canvas.Brush.Color := tuColor;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

Saludos
__________________
Piensa siempre en positivo !
Responder Con Cita